static newtComponent nmt_newt_popup_build_component (NmtNewtComponent *component, gboolean sensitive) { NmtNewtPopupPrivate *priv = NMT_NEWT_POPUP_GET_PRIVATE (component); NmtNewtPopupEntry *entries = (NmtNewtPopupEntry *)priv->entries->data; nmt_newt_button_set_label (NMT_NEWT_BUTTON (component), entries[priv->active].label); return NMT_NEWT_COMPONENT_CLASS (nmt_newt_popup_parent_class)-> build_component (component, sensitive); }
static void nmt_newt_button_class_init (NmtNewtButtonClass *button_class) { GObjectClass *object_class = G_OBJECT_CLASS (button_class); NmtNewtComponentClass *component_class = NMT_NEWT_COMPONENT_CLASS (button_class); NmtNewtWidgetClass *widget_class = NMT_NEWT_WIDGET_CLASS (button_class); g_type_class_add_private (button_class, sizeof (NmtNewtButtonPrivate)); /* virtual methods */ object_class->set_property = nmt_newt_button_set_property; object_class->get_property = nmt_newt_button_get_property; object_class->finalize = nmt_newt_button_finalize; widget_class->size_request = nmt_newt_button_size_request; widget_class->size_allocate = nmt_newt_button_size_allocate; widget_class->activated = nmt_newt_button_activated; component_class->build_component = nmt_newt_button_build_component; /* signals */ /** * NmtNewtButton::clicked: * @button: the #NmtNewtButton * * Emitted when the button is clicked. */ signals[CLICKED] = g_signal_new ("clicked", G_OBJECT_CLASS_TYPE (object_class), G_SIGNAL_RUN_FIRST, 0, NULL, NULL, NULL, G_TYPE_NONE, 0); /* properties */ /** * NmtNewtButton:label: * * The button's label */ g_object_class_install_property (object_class, PROP_LABEL, g_param_spec_string ("label", "", "", NULL, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); }
static void nmt_newt_label_class_init (NmtNewtLabelClass *label_class) { GObjectClass *object_class = G_OBJECT_CLASS (label_class); NmtNewtComponentClass *component_class = NMT_NEWT_COMPONENT_CLASS (label_class); g_type_class_add_private (label_class, sizeof (NmtNewtLabelPrivate)); /* virtual methods */ object_class->set_property = nmt_newt_label_set_property; object_class->get_property = nmt_newt_label_get_property; object_class->finalize = nmt_newt_label_finalize; component_class->build_component = nmt_newt_label_build_component; /** * NmtNewtLabel:text: * * The label's text */ g_object_class_install_property (object_class, PROP_TEXT, g_param_spec_string ("text", "", "", NULL, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); /** * NmtNewtLabel:style: * * The label's #NmtNewtLabelStyle */ g_object_class_install_property (object_class, PROP_STYLE, g_param_spec_int ("style", "", "", 0, G_MAXINT, 0, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); /** * NmtNewtLabel:highlight: * * Whether the label is highlighted. */ g_object_class_install_property (object_class, PROP_HIGHLIGHT, g_param_spec_boolean ("highlight", "", "", FALSE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); }
static void nmt_newt_popup_class_init (NmtNewtPopupClass *popup_class) { GObjectClass *object_class = G_OBJECT_CLASS (popup_class); NmtNewtWidgetClass *widget_class = NMT_NEWT_WIDGET_CLASS (popup_class); NmtNewtComponentClass *component_class = NMT_NEWT_COMPONENT_CLASS (popup_class); g_type_class_add_private (popup_class, sizeof (NmtNewtPopupPrivate)); /* virtual methods */ object_class->set_property = nmt_newt_popup_set_property; object_class->get_property = nmt_newt_popup_get_property; object_class->finalize = nmt_newt_popup_finalize; widget_class->activated = nmt_newt_popup_activated; component_class->build_component = nmt_newt_popup_build_component; /** * NmtNewtPopup:active: * * The index of the currently-active entry. */ g_object_class_install_property (object_class, PROP_ACTIVE, g_param_spec_uint ("active", "", "", 0, G_MAXUINT, 0, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); /** * NmtNewtPopup:active-id: * * The textual ID of the currently-active entry. */ g_object_class_install_property (object_class, PROP_ACTIVE_ID, g_param_spec_string ("active-id", "", "", NULL, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); }
static void nmt_newt_entry_class_init (NmtNewtEntryClass *entry_class) { GObjectClass *object_class = G_OBJECT_CLASS (entry_class); NmtNewtWidgetClass *widget_class = NMT_NEWT_WIDGET_CLASS (entry_class); NmtNewtComponentClass *component_class = NMT_NEWT_COMPONENT_CLASS (entry_class); g_type_class_add_private (entry_class, sizeof (NmtNewtEntryPrivate)); /* virtual methods */ object_class->constructed = nmt_newt_entry_constructed; object_class->set_property = nmt_newt_entry_set_property; object_class->get_property = nmt_newt_entry_get_property; object_class->finalize = nmt_newt_entry_finalize; widget_class->activated = nmt_newt_entry_activated; component_class->build_component = nmt_newt_entry_build_component; /** * NmtNewtEntry:text * * The entry's text */ g_object_class_install_property (object_class, PROP_TEXT, g_param_spec_string ("text", "", "", NULL, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); /** * NmtNewtEntry:width * * The entry's width in characters */ g_object_class_install_property (object_class, PROP_WIDTH, g_param_spec_int ("width", "", "", -1, 80, -1, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); /** * NmtNewtEntry:flags * * The entry's #NmtNewtEntryFlags */ g_object_class_install_property (object_class, PROP_FLAGS, g_param_spec_uint ("flags", "", "", 0, 0xFFFF, 0, G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS)); /** * NmtNewtEntry:password * * %TRUE if #NmtNewtEntry:flags contains %NMT_NEWT_ENTRY_PASSWORD, * %FALSE if not. */ g_object_class_install_property (object_class, PROP_PASSWORD, g_param_spec_boolean ("password", "", "", FALSE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); }
static void nmt_newt_listbox_class_init (NmtNewtListboxClass *listbox_class) { GObjectClass *object_class = G_OBJECT_CLASS (listbox_class); NmtNewtWidgetClass *widget_class = NMT_NEWT_WIDGET_CLASS (listbox_class); NmtNewtComponentClass *component_class = NMT_NEWT_COMPONENT_CLASS (listbox_class); g_type_class_add_private (listbox_class, sizeof (NmtNewtListboxPrivate)); /* virtual methods */ object_class->set_property = nmt_newt_listbox_set_property; object_class->get_property = nmt_newt_listbox_get_property; object_class->finalize = nmt_newt_listbox_finalize; widget_class->size_request = nmt_newt_listbox_size_request; widget_class->size_allocate = nmt_newt_listbox_size_allocate; widget_class->activated = nmt_newt_listbox_activated; component_class->build_component = nmt_newt_listbox_build_component; /* properties */ /** * NmtNewtListbox:height: * * The listbox's height, or -1 if it has no fixed height. */ g_object_class_install_property (object_class, PROP_HEIGHT, g_param_spec_int ("height", "", "", -1, 255, -1, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); /** * NmtNewtListbox:flags: * * The listbox's #NmtNewtListboxFlags. */ g_object_class_install_property (object_class, PROP_FLAGS, g_param_spec_uint ("flags", "", "", 0, 0xFFFF, 0, G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS)); /** * NmtNewtListbox:active: * * The currently-selected row. */ g_object_class_install_property (object_class, PROP_ACTIVE, g_param_spec_int ("active", "", "", 0, G_MAXINT, 0, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); /** * NmtNewtListbox:active-key: * * The key of the currently-selected row. */ g_object_class_install_property (object_class, PROP_ACTIVE_KEY, g_param_spec_pointer ("active-key", "", "", G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); /** * NmtNewtListbox:skip-null-keys: * * If %TRUE, rows with %NULL key values will be skipped over when * navigating the list with the arrow keys. */ g_object_class_install_property (object_class, PROP_SKIP_NULL_KEYS, g_param_spec_boolean ("skip-null-keys", "", "", FALSE, G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS)); }