Example #1
0
bool ClassPreferencesDialog::run(Builder &builder, ClassNodeDrawOptions &options)
    {
    Dialog dlg(GTK_DIALOG(gtk_dialog_new()));
    dlg.addButton(GUI_CANCEL, GTK_RESPONSE_CANCEL);
    dlg.addButton(GUI_OK, GTK_RESPONSE_OK);

    // Steal the options, then put them back.
    GtkWidget *optionsBox = builder.getWidget("ClassesOptionsBox");
    Gui::reparentWidget(optionsBox, GTK_CONTAINER(dlg.getContentArea()));

    for(auto const &opt : PrefOptions)
        {
        bool active = *(reinterpret_cast<unsigned char *>(&options) + (opt.offset));
        gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(
                Builder::getBuilder()->getWidget(opt.widgetName)), active);
        }

    bool ok = dlg.run();
    if(ok)
        {
        for(auto const &opt : PrefOptions)
            {
            bool active = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(
                    Builder::getBuilder()->getWidget(opt.widgetName)));
            *(reinterpret_cast<unsigned char *>(&options) + (opt.offset)) = active;
            }
        }
    Gui::reparentWidget(optionsBox, GTK_CONTAINER(builder.getWidget("OptionsNotebook")));
    dlg.destroy();
    return ok;
    }
Example #2
0
void EditFiles::init(Builder &builder)
    {
    mBuilder = &builder;
    mHeaderBook = GTK_NOTEBOOK(builder.getWidget("EditNotebook1"));
    mSourceBook = GTK_NOTEBOOK(builder.getWidget("EditNotebook2"));
    updateDebugMenu();
    }
Example #3
0
void ClassDiagramView::displayDrawContextMenu(guint button, guint32 acttime, gpointer data)
    {
    GdkEventButton *event = static_cast<GdkEventButton*>(data);
    ClassNode *node = getNode(static_cast<int>(event->x), static_cast<int>(event->y));
    OovStringRef const nodeMenus[] =
        {
        "GotoClassMenuitem", "ClassPreferencesMenuitem", "AddSelectedMenuitem",
        "AddStandardMenuitem", "AddAllMenuitem",
        "AddSuperclassesMenuitem", "AddSubclassesMenuitem",
        "AddMembersUsingMenuitem", "AddMemberUsersMenuitem",
        "AddTemplateMenuItem",
        "AddFuncParamsUsingMenuitem", "AddFuncParamUsersMenuitem",
        "AddFuncBodyVarUsingMenuitem", "AddFuncBodyVarUsersMenuitem",
        "RemoveClassMenuitem", "ViewSourceMenuitem"
        };
    Builder *builder = Builder::getBuilder();
    for(size_t i=0; i<sizeof(nodeMenus)/sizeof(nodeMenus[i]); i++)
        {
        gtk_widget_set_sensitive(builder->getWidget(
                nodeMenus[i]), node != nullptr);
        }

    GtkMenu *menu = builder->getMenu("DrawClassPopupMenu");
    gtk_menu_popup(menu, nullptr, nullptr, nullptr, nullptr, button, acttime);
    gStartPosInfo.set(static_cast<int>(event->x), static_cast<int>(event->y));
    }
Example #4
0
static void displayContextMenu(guint button, guint32 acttime, gpointer data)
    {
    GdkEventButton *event = static_cast<GdkEventButton*>(data);
    const OperationClass *node = gOperationDiagramView->getDiagram().getNode(
        static_cast<int>(event->x), static_cast<int>(event->y));
    const OperationCall *opcall = gOperationDiagramView->getDiagram().getOperation(
            gStartPosInfo.x, gStartPosInfo.y);
    OovStringRef const nodeitems[] =
        {
        "OperGotoClassMenuitem",
        "RemoveOperClassMenuitem",
        };
    Builder *builder = Builder::getBuilder();
    for(size_t i=0; i<sizeof(nodeitems)/sizeof(nodeitems[i]); i++)
        {
        gtk_widget_set_sensitive(builder->getWidget(nodeitems[i]),
                node != nullptr);
        }
    OovStringRef const operitems[] =
        {
        "OperGotoOperationMenuitem",
        "AddCallsMenuitem",
        "AddCallersMenuitem",
        "RemoveCallsMenuitem"
        };
    for(size_t i=0; i<sizeof(operitems)/sizeof(operitems[i]); i++)
        {
        gtk_widget_set_sensitive(builder->getWidget(operitems[i]),
                opcall != nullptr);
        }
    gtk_widget_set_sensitive(builder->getWidget("ViewOperSourceMenuitem"),
            opcall != nullptr || node != nullptr);

    GtkMenu *menu = builder->getMenu("DrawOperationPopupMenu");
    gtk_menu_popup(menu, nullptr, nullptr, nullptr, nullptr, button, acttime);
    gStartPosInfo.set(static_cast<int>(event->x), static_cast<int>(event->y));
    }