getChatControl method
Implementation
Widget getChatControl(Area cg) {
return Row(
children: [
DropdownButton(
value: msgScope,
onChanged: (MessageScope? newScope) {
setState(() {
msgScope = newScope ?? MessageScope.area;
});
},
items: [
DropdownMenuItem(
value: MessageScope.room,
enabled: widget.usingRooms,
child: widget.usingRooms
? Text("${widget.roomName} Message: ")
: const SizedBox.shrink(),
),
DropdownMenuItem(
value: MessageScope.area,
enabled: widget.usingAreas,
child: widget.usingAreas
? Text("${widget.areaName} Message: ")
: const SizedBox.shrink(),
),
DropdownMenuItem(
value: MessageScope.server,
enabled: widget.usingServer,
child: widget.usingServer
? Text("${widget.serverName} Message: ")
: const SizedBox.shrink(),
),
]),
const SizedBox(width: 4),
Expanded(
child: Container(
color: widget.cmdBkgColor,
child: TextField(
controller: textInputController,
focusNode: textInputFocus,
autofocus: true,
style: TextStyle(
color: widget.cmdTxtColor,
backgroundColor: widget.cmdBkgColor),
onSubmitted: (txt) {
widget.client.send(
switch (msgScope) {
MessageScope.room => ClientMsg.roomMsg,
MessageScope.area => ClientMsg.areaMsg,
MessageScope.server => ClientMsg.servMsg,
},
data: {fieldTitle: cg.title, fieldMsg: txt});
setState(() {
textInputController.text = "";
});
textInputFocus.requestFocus();
},
)),
),
msgScope == MessageScope.area ? IconButton(
onPressed: () => widget.client.areaCmd(ClientMsg.updateArea),
icon: const Icon(Icons.update) //,size: iconHeight-16)
) : const SizedBox.shrink(),
],
);
}