void create_options( XfcePanelPlugin *plugin, CPUGraph *base ) { GtkWidget *dlg, *header; GtkBox *vbox, *vbox2; GtkWidget *label; GtkSizeGroup *sg; GtkWidget *Notebook; xfce_panel_plugin_block_menu( plugin ); dlg = gtk_dialog_new_with_buttons( _("CPU Graph Properties"), GTK_WINDOW( gtk_widget_get_toplevel( GTK_WIDGET( plugin ) ) ), GTK_DIALOG_DESTROY_WITH_PARENT | GTK_DIALOG_NO_SEPARATOR, GTK_STOCK_CLOSE, GTK_RESPONSE_OK, NULL ); g_signal_connect( dlg, "response", G_CALLBACK( response_cb ), base ); gtk_container_set_border_width( GTK_CONTAINER( dlg ), 2 ); header = xfce_create_header( NULL, _("CPU Graph") ); gtk_widget_set_size_request( GTK_BIN( header )->child, -1, 32 ); gtk_container_set_border_width( GTK_CONTAINER( header ), BORDER - 2 ); gtk_widget_show( header ); gtk_box_pack_start( GTK_BOX( GTK_DIALOG( dlg )->vbox ), header, FALSE, TRUE, 0 ); sg = gtk_size_group_new( GTK_SIZE_GROUP_HORIZONTAL ); vbox = create_tab(); setup_update_interval_option( vbox, sg, base ); setup_tracked_core_option( vbox, sg, base ); setup_size_option( vbox, sg, plugin, base ); create_check_box( vbox, sg, _("Use non-linear time-scale"), base->non_linear, change_time_scale, base ); create_check_box( vbox, sg, _("Show frame"), base->has_frame, change_frame, base ); create_check_box( vbox, sg, _("Show border"), base->has_border, change_border, base ); create_check_box( vbox, sg, ngettext( "Show current usage bar", "Show current usage bars", base->nr_cores ), base->has_bars, change_bars, base ); setup_command_option( vbox, sg, base ); create_check_box( vbox, sg, _("Run in terminal"), base->in_terminal, change_in_terminal, base ); create_check_box( vbox, sg, _("Use startup notification"), base->startup_notification, change_startup_notification, base ); vbox2 = create_tab(); setup_color_option( vbox2, sg, base, 1, _("Color 1:"), G_CALLBACK( change_color_1 ) ); setup_color_option( vbox2, sg, base, 2, _("Color 2:"), G_CALLBACK( change_color_2 ) ); setup_color_option( vbox2, sg, base, 3, _("Color 3:"), G_CALLBACK( change_color_3 ) ); setup_color_option( vbox2, sg, base, 0, _("Background:"), G_CALLBACK( change_color_0 ) ); select_active_colors( base ); setup_mode_option( vbox2, sg, base ); setup_color_mode_option( vbox2, sg, base ); Notebook = gtk_notebook_new(); gtk_container_set_border_width( GTK_CONTAINER( Notebook ), BORDER - 2 ); label = gtk_label_new( _("Appearance") ); gtk_notebook_append_page( GTK_NOTEBOOK( Notebook ), GTK_WIDGET( vbox2 ), GTK_WIDGET( label ) ); label = gtk_label_new( _("Advanced") ); gtk_notebook_append_page( GTK_NOTEBOOK( Notebook ), GTK_WIDGET( vbox ), GTK_WIDGET( label ) ); gtk_widget_show( Notebook ); gtk_box_pack_start( GTK_BOX( GTK_DIALOG( dlg )->vbox), GTK_WIDGET( Notebook ), TRUE, TRUE, 0 ); gtk_widget_show( dlg ); }
FilterView::FilterView() : BGroupView("filter view", B_VERTICAL) { // Contruct category popup BPopUpMenu* showMenu = new BPopUpMenu(B_TRANSLATE("Category")); fShowField = new BMenuField("category", B_TRANSLATE("Category:"), showMenu); // Construct repository popup BPopUpMenu* repositoryMenu = new BPopUpMenu(B_TRANSLATE("Depot")); fRepositoryField = new BMenuField("repository", B_TRANSLATE("Depot:"), repositoryMenu); // Construct search terms field fSearchTermsText = new BTextControl("search terms", B_TRANSLATE("Search terms:"), "", NULL); fSearchTermsText->SetModificationMessage( new BMessage(MSG_SEARCH_TERMS_MODIFIED)); BSize minSearchSize = fSearchTermsText->MinSize(); float minSearchWidth = be_plain_font->StringWidth(fSearchTermsText->Label()) + be_plain_font->StringWidth("XXX") * 6; minSearchWidth = std::max(minSearchSize.width, minSearchWidth); minSearchSize.width = minSearchWidth; fSearchTermsText->SetExplicitMinSize(minSearchSize); float maxSearchWidth = minSearchWidth * 2; fSearchTermsText->SetExplicitMaxSize(BSize(maxSearchWidth, B_SIZE_UNSET)); // Construct check boxen fAvailableCheckBox = create_check_box( B_TRANSLATE("Available"), "available"); fInstalledCheckBox = create_check_box( B_TRANSLATE("Installed"), "installed"); fDevelopmentCheckBox = create_check_box( B_TRANSLATE("Development"), "development"); fSourceCodeCheckBox = create_check_box( B_TRANSLATE("Source code"), "source code"); // Build layout BLayoutBuilder::Group<>(this) .AddGroup(B_HORIZONTAL) .AddGroup(B_HORIZONTAL, B_USE_DEFAULT_SPACING, 1.2f) .Add(fShowField, 0.0f) .Add(fRepositoryField, 0.0f) .SetExplicitMaxSize(BSize(B_SIZE_UNLIMITED, B_SIZE_UNSET)) .End() .AddGlue(0.5f) .Add(fSearchTermsText, 1.0f) .End() .AddGroup(B_HORIZONTAL) .Add(fAvailableCheckBox) .Add(fInstalledCheckBox) .Add(fDevelopmentCheckBox) .Add(fSourceCodeCheckBox) .AddGlue(0.5f) .End() .SetInsets(B_USE_DEFAULT_SPACING) ; }