Ejemplo n.º 1
0
void mt_show_ancestors(GtkWidget *widget)
{
   while (widget) {
      fprintf(stderr, "%s > ", GTK_OBJECT_TYPE_NAME(widget));
      widget = widget->parent;
   }
   printf("0\n");
}
Ejemplo n.º 2
0
/**
 * \brief Create all the skel or container windows for modules but ui.
 *
 * ui, is only part of skel, all the content is filled later.
 *
 * content type:
 *      page, trigger, hbar, vbar
 *
 * main window.             p.ui.ui.window.main
 * optn window.             p.ui.ui.window.optn
 * info window.             p.ui.ui.window.info
 * media window             p.ui.ui.window.media
 */
static void ui_create_ui(KIM * im)
{
    char xmlpath[1024];
    sprintf(xmlpath, "%s\\ui\\main.glade", kim_getstr(im, "s.env.path.moduleDir", knil));
    kstr_subs(xmlpath, '\\', kvfs_path_sep());

    GladeXML *gxml = glade_xml_new(xmlpath, NULL, NULL);
    kim_addptr(im, "p.ui.ui.glade", (kvoid *) gxml, RF_AUTOSET, knil, knil);

    GtkWidget *window_main = glade_xml_get_widget(gxml, "window_main");
    kim_addptr(im, "p.ui.ui.window.main", (kvoid *) window_main, RF_AUTOSET, knil, knil);
    klog(("window_main: %s\n", GTK_OBJECT_TYPE_NAME(window_main)));

    GtkWidget *vbox_main = glade_xml_get_widget(gxml, "winmain_vbox_main");
    klog(("vbox_main: %s\n", GTK_OBJECT_TYPE_NAME(vbox_main)));

    gtk_drag_dest_set(vbox_main, GTK_DEST_DEFAULT_ALL, target_table, n_targets, /* no rootwin */
                      GdkDragAction(GDK_ACTION_COPY | GDK_ACTION_MOVE));
    g_signal_connect(vbox_main, "drag_drop", G_CALLBACK(target_drag_drop), vbox_main);

    g_signal_connect(vbox_main, "drag_data_received", G_CALLBACK(target_drag_data_received), NULL);


    if (0) {
        GtkWidget *button;
        button = gtk_button_new_with_label("xxyyyx");
        //button = gtk_viewport_new(NULL, NULL);//"GTK_WINDOW_TOPLEVEL");
        gtk_box_pack_start(GTK_BOX(vbox_main), button, TRUE, FALSE, 0);

        gtk_drag_source_set(button, GdkModifierType(GDK_BUTTON1_MASK | GDK_BUTTON3_MASK),
                            target_table, n_targets, GdkDragAction(GDK_ACTION_COPY | GDK_ACTION_MOVE));
    }

    GtkWidget *window_info = glade_xml_get_widget(gxml, "window_info");
    kim_addptr(im, "p.ui.ui.window.info", (kvoid *) window_info, RF_AUTOSET, knil, knil);

    GtkWidget *window_media = glade_xml_get_widget(gxml, "window_media");
    kim_addptr(im, "p.ui.ui.window.media", (kvoid *) window_media, RF_AUTOSET, knil, knil);

    // gtk_box_pack_start(GTK_BOX(vbox_main), window_media, TRUE, FALSE, 0);

    GtkWidget *window_pref = glade_xml_get_widget(gxml, "window_pref");
    kim_addptr(im, "p.ui.ui.window.optn", (kvoid *) window_pref, RF_AUTOSET, knil, knil);
    gtk_widget_show(window_pref);

    if (0) {
        GtkWidget *button;
        button = gtk_button_new_with_label("xxyyyx");
        gtk_box_pack_start(GTK_BOX(vbox_main), button, TRUE, TRUE, 0);
        kim_addptr(im, "p.ui.ui.window.optn", (kvoid *) button, RF_AUTOSET, knil, knil);
    }

    GtkWidget *window_tool = glade_xml_get_widget(gxml, "window_tool");
    kim_addptr(im, "p.ui.ui.window.tool", (kvoid *) window_tool, RF_AUTOSET, knil, knil);

    GtkWidget *window_tool_pool = glade_xml_get_widget(gxml, "wintool_viewport_tool_pool");
    kim_addptr(im, "p.ui.ui.window.tool_pool", (kvoid *) window_tool_pool, RF_AUTOSET, knil, knil);

    GtkWidget *window_layout_tool_pool = glade_xml_get_widget(gxml, "wintool_viewport_layout_tool_pool");
    kim_addptr(im, "p.ui.ui.window.layout_tool_pool", (kvoid *) window_layout_tool_pool, RF_AUTOSET, knil, knil);

    glade_xml_signal_autoconnect(gxml);

    glade_xml_signal_connect_data(gxml, "on_winmain_menu_item_about_activate",
                                  G_CALLBACK(on_winmain_menu_item_about_activate), NULL);
    glade_xml_signal_connect_data(gxml, "on_winmain_menu_item_tool_activate",
                                  G_CALLBACK(on_winmain_menu_item_tool_activate), NULL);
    glade_xml_signal_connect_data(gxml, "on_winmain_menu_item_pref_activate",
                                  G_CALLBACK(on_winmain_menu_item_pref_activate), NULL);
}