menuKeyChoice->value(i + 1);
/* Screen */
+ int width, height;
+
+ if (sscanf(desktopSize.getValueStr(), "%dx%d", &width, &height) != 2) {
+ desktopSizeCheckbox->value(false);
+ desktopWidthInput->value("1024");
+ desktopHeightInput->value("768");
+ } else {
+ char buf[32];
+ desktopSizeCheckbox->value(true);
+ snprintf(buf, sizeof(buf), "%d", width);
+ desktopWidthInput->value(buf);
+ snprintf(buf, sizeof(buf), "%d", height);
+ desktopHeightInput->value(buf);
+ }
fullScreenCheckbox->value(fullScreen);
+ handleDesktopSize(desktopSizeCheckbox, this);
+
/* Misc. */
sharedCheckbox->value(shared);
dotCursorCheckbox->value(dotWhenNoCursor);
}
/* Screen */
+ int width, height;
+
+ if (desktopSizeCheckbox->value() &&
+ (sscanf(desktopWidthInput->value(), "%d", &width) == 1) &&
+ (sscanf(desktopHeightInput->value(), "%d", &height) == 1)) {
+ char buf[64];
+ snprintf(buf, sizeof(buf), "%dx%d", width, height);
+ desktopSize.setParam(buf);
+ } else {
+ desktopSize.setParam("");
+ }
fullScreen.setParam(fullScreenCheckbox->value());
/* Misc. */
void OptionsDialog::createScreenPage(int tx, int ty, int tw, int th)
{
+ int x;
+
Fl_Group *group = new Fl_Group(tx, ty, tw, th, _("Screen"));
tx += OUTER_MARGIN;
ty += OUTER_MARGIN;
+ desktopSizeCheckbox = new Fl_Check_Button(LBLRIGHT(tx, ty,
+ CHECK_MIN_WIDTH,
+ CHECK_HEIGHT,
+ _("Resize remote session on connect")));
+ desktopSizeCheckbox->callback(handleDesktopSize, this);
+ ty += CHECK_HEIGHT + TIGHT_MARGIN;
+
+ desktopWidthInput = new Fl_Int_Input(tx + INDENT, ty, 50, INPUT_HEIGHT);
+ x = desktopWidthInput->x() + desktopWidthInput->w() + \
+ gui_str_len("x") + 3 * 2;
+ desktopHeightInput = new Fl_Int_Input(x, ty, 50, INPUT_HEIGHT, "x");
+ ty += INPUT_HEIGHT + TIGHT_MARGIN;
+
fullScreenCheckbox = new Fl_Check_Button(LBLRIGHT(tx, ty,
CHECK_MIN_WIDTH,
CHECK_HEIGHT,
}
+void OptionsDialog::handleDesktopSize(Fl_Widget *widget, void *data)
+{
+ OptionsDialog *dialog = (OptionsDialog*)data;
+
+ if (dialog->desktopSizeCheckbox->value()) {
+ dialog->desktopWidthInput->activate();
+ dialog->desktopHeightInput->activate();
+ } else {
+ dialog->desktopWidthInput->deactivate();
+ dialog->desktopHeightInput->deactivate();
+ }
+}
+
void OptionsDialog::handleCancel(Fl_Widget *widget, void *data)
{
OptionsDialog *dialog = (OptionsDialog*)data;