コード例 #1
0
ファイル: i_ring.c プロジェクト: sivarajankumar/plutocracy
/******************************************************************************\
 Initialize ring widgets and attach them to the root window.
\******************************************************************************/
void I_init_ring(void)
{
        int i;

        I_widget_init(&ring_widget, "Ring");
        ring_widget.event_func = (i_event_f)ring_event;
        ring_widget.state = I_WS_READY;
        ring_widget.shown = FALSE;

        /* Generic buttons */
        I_button_init(button_widgets + I_RI_NONE,
                      "gui/icons/ring/none.png", NULL, I_BT_ROUND);
        I_button_init(button_widgets + I_RI_UNKNOWN,
                      "gui/icons/ring/unknown.png", NULL, I_BT_ROUND);
        I_button_init(button_widgets + I_RI_SHIP,
                      "gui/icons/ring/ship.png", NULL, I_BT_ROUND);

        /* Building buttons */
        I_button_init(button_widgets + I_RI_MILL,
                      "gui/icons/ring/mill.png", NULL, I_BT_ROUND);
        I_button_init(button_widgets + I_RI_TREE,
                      "gui/icons/ring/tree.png", NULL, I_BT_ROUND);
        I_button_init(button_widgets + I_RI_SHIPYARD,
                      "gui/icons/ring/dock.png", NULL, I_BT_ROUND);

        /* Ship interactions */
        I_button_init(button_widgets + I_RI_BOARD,
                      "gui/icons/ring/board.png", NULL, I_BT_ROUND);
        I_button_init(button_widgets + I_RI_FOLLOW,
                      "gui/icons/ring/follow.png", NULL, I_BT_ROUND);

        /* Tech preview buttons */
        I_button_init(button_widgets + I_RI_SLOOP,
                      "gui/icons/ring/ship.png", NULL, I_BT_ROUND);
        I_button_init(button_widgets + I_RI_SPIDER,
                      "gui/icons/ring/spider.png", NULL, I_BT_ROUND);
        I_button_init(button_widgets + I_RI_GALLEON,
                      "gui/icons/ring/galleon.png", NULL, I_BT_ROUND);

        /* Finish initializing the button widgets */
        for (i = 0; i < I_RING_ICONS; i++) {
                I_widget_add(&ring_widget, &button_widgets[i].widget);
                button_widgets[i].on_click = (i_callback_f)button_clicked;
        }

        I_widget_add(&i_root, &ring_widget);

        /* Detail popup window */
        I_window_init(&detail_window);
        I_label_init(&detail_title, NULL);
        I_widget_add(&detail_window.widget, &detail_title.widget);
        I_label_init(&detail_sub_title, NULL);
        I_widget_add(&detail_window.widget, &detail_sub_title.widget);
        detail_window.widget.shown = FALSE;
        detail_window.fit = I_FIT_TOP;
        detail_window.popup = TRUE;
        I_widget_add(&i_root, &detail_window.widget);
}
コード例 #2
0
ファイル: i_checkbox.c プロジェクト: Garoth/plutocracy
/******************************************************************************\
 Initializes a button widget. The [icon] path and [text] strings can be NULL
 and do not need to persist after calling the function.
\******************************************************************************/
void I_checkbox_init(i_checkbox_t *checkbox)
{
        C_zero(checkbox);
        I_widget_init(&checkbox->widget, "Checkbox");
        checkbox->widget.event_func = (i_event_f)I_checkbox_event;
        checkbox->widget.state = I_WS_READY;
        checkbox->on_change = NULL;
//        checkbox->type = type;
//        R_sprite_load(&button->icon, icon);
//        C_strncpy_buf(button->buffer, text);
}
コード例 #3
0
ファイル: i_window.c プロジェクト: sivarajankumar/plutocracy
/******************************************************************************\
 Initialize a toolbar widget.
\******************************************************************************/
void I_toolbar_init(i_toolbar_t *toolbar, int right)
{
        C_zero(toolbar);
        I_widget_init(&toolbar->widget, "Toolbar");
        toolbar->widget.event_func = (i_event_f)I_toolbar_event;
        toolbar->widget.state = I_WS_READY;
        toolbar->widget.steal_keys = TRUE;
        toolbar->right = right;
        I_window_init(&toolbar->window);
        toolbar->window.pack_children = I_PACK_H;
        toolbar->window.fit = right ? I_FIT_TOP : I_FIT_BOTTOM;
        I_widget_add(&toolbar->widget, &toolbar->window.widget);
}
コード例 #4
0
ファイル: i_window.c プロジェクト: sivarajankumar/plutocracy
/******************************************************************************\
 Initializes an window widget.
\******************************************************************************/
void I_window_init(i_window_t *window)
{
        if (!window)
                return;
        C_zero(window);
        I_widget_init(&window->widget, "Window");
        window->widget.event_func = (i_event_f)I_window_event;
        window->widget.state = I_WS_READY;
        window->widget.padding = 1.f;
        window->widget.steal_keys = TRUE;
        window->pack_children = I_PACK_V;
        window->decorated = TRUE;
}
コード例 #5
0
ファイル: i_window.c プロジェクト: sivarajankumar/plutocracy
/******************************************************************************\
 Initialize popup widget and add it to the root widget.
\******************************************************************************/
void I_init_popup(void)
{
        I_widget_init(&popup_widget, "Popup");
        popup_widget.event_func = (i_event_f)popup_event;
        popup_widget.state = I_WS_READY;
        popup_widget.shown = FALSE;
        popup_widget.padding = 1.f;
        popup_widget.steal_keys = TRUE;

        /* Label */
        I_label_init(&popup_label, NULL);
        I_widget_add(&popup_widget, &popup_label.widget);

        /* Zoom button */
        I_button_init(&zoom_button, "gui/icons/zoom.png", NULL, I_BT_ROUND);
        zoom_button.widget.margin_front = 0.5f;
        zoom_button.on_click = (i_callback_f)popup_zoom;
        I_widget_add(&popup_widget, &zoom_button.widget);

        I_widget_add(&i_root, &popup_widget);
}