找回密码
 注册
查看: 852|回复: 1

GTK POPUP型窗口下的button和tooltip

[复制链接]
发表于 2005-8-21 11:05:13 | 显示全部楼层 |阅读模式
请教一个GTK_WINDOW_POPUP型 gtk_window的问题
以下程序, 当我用GTK_WINDOW_TOPLEVEL时,一切工作正常:当mouse在button上, buuton会凸起, tooltip也会显示; 但在GTK_WINDOW_POPUP时, 就不行.

请问需要再对POPUP型 gtk_window作什么设置吗? 或者是否有办法让TOPLEVEL型 gtk_window不显示在window list中?
谢谢!

#include <gtk/gtk.h>

gint close_application( GtkWidget *widget, GdkEvent*event, gpointer data )
{
        gtk_main_quit();
        return(FALSE);
}

int test_main (int argc, char *argv[] )
{
        GtkWidget *window, *win_tl;

        gtk_init (&argc, &argv);
#if        0
        window = gtk_window_new( GTK_WINDOW_POPUP );
#else
        window = gtk_window_new( GTK_WINDOW_TOPLEVEL );
#endif

        gtk_signal_connect (GTK_OBJECT (window), "delete_event",
                GTK_SIGNAL_FUNC (close_application), NULL);
gdk_window_withdraw (GDK_WINDOW(window));
        gtk_widget_show (window);
        gtk_widget_set_events( window, gtk_widget_get_events( window ) |
                GDK_BUTTON_PRESS_MASK );
        gtk_signal_connect( GTK_OBJECT(window), "button_press_event",
                GTK_SIGNAL_FUNC(close_application), NULL );

        GtkWidget *frame;
        frame = gtk_frame_new(NULL);
        gtk_frame_set_shadow_type(GTK_FRAME(frame),GTK_SHADOW_ETCHED_OUT);
#define FloatWindow        window
        gtk_container_add(GTK_CONTAINER(FloatWindow),frame);

        GtkWidget *vbox;
        vbox = gtk_vbox_new(false,0);
        gtk_container_add(GTK_CONTAINER(frame),vbox);

        GtkTooltips *tooltips;
        tooltips = gtk_tooltips_new();
        gtk_tooltips_set_tip(tooltips,frame,"frame",NULL);

        GtkWidget *button;

        button= gtk_button_new();
        gtk_container_add(GTK_CONTAINER(button),gtk_image_new_from_stock(GTK_STOCK_FIND,GTK_ICON_SIZE_MENU));
        gtk_button_set_relief (GTK_BUTTON (button), GTK_RELIEF_NONE);
        g_signal_connect(G_OBJECT(button),"clicked", G_CALLBACK(    gtk_main_quit ),NULL);
        gtk_tooltips_set_tip(tooltips,button,"Query in the main window",NULL);
        gtk_box_pack_start(GTK_BOX(vbox),button,false,false,0);

        button= gtk_button_new();
        gtk_container_add(GTK_CONTAINER(button),gtk_image_new_from_stock(GTK_STOCK_QUIT,GTK_ICON_SIZE_MENU));
        gtk_button_set_relief (GTK_BUTTON (button), GTK_RELIEF_NONE);
        g_signal_connect(G_OBJECT(button),"clicked", G_CALLBACK(    gtk_main_quit ),NULL);
        gtk_tooltips_set_tip(tooltips,button,"Quit",NULL);
        gtk_box_pack_start(GTK_BOX(vbox),button,false,false,0);

        gtk_widget_show_all(frame);

        gtk_main ();
        return(0);
}
发表于 2005-8-27 20:53:15 | 显示全部楼层

Re: GTK POPUP型窗口下的button和toolt

[quote:6bb9a5796f="CaiQiang"]请教一个GTK_WINDOW_POPUP型 gtk_window的问题
以下程序, 当我用GTK_WINDOW_TOPLEVEL时,一切工作正常:当mouse在button上, buuton会凸起, tooltip也会显示; 但在GTK_WINDOW_POPUP时, 就不行.
[/quote]
我试了哈,好像可以的(gtk+2.8.0).

请问需要再对POPUP型 gtk_window作什么设置吗? 或者是否有办法让TOPLEVEL型 gtk_window不显示在window list中?

[code:1]
gtk_window_set_skip_taskbar_hint ()

void        gtk_window_set_skip_taskbar_hint
                                            (GtkWindow *window,
                                             gboolean setting);

Windows may set a hint asking the desktop environment not to display the window in the task bar. This function sets this hint.

window :         a GtkWindow
setting :         TRUE to keep this window from appearing in the task bar

Since 2.2
[/code:1]
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2025-2-8 00:11 , Processed in 0.026240 second(s), 15 queries .

© 2001-2025 Discuz! Team. Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表