Esempio n. 1
0
static void gtkDialogUnMapMethod(Ihandle* ih)
{
  GtkWidget* fixed;
#if GTK_CHECK_VERSION(2, 10, 0)
  GtkStatusIcon* status_icon;
#endif

  if (ih->data->menu) 
  {
    ih->data->menu->handle = NULL; /* the dialog will destroy the native menu */
    IupDestroy(ih->data->menu);  
  }

#if GTK_CHECK_VERSION(2, 10, 0)
  status_icon = (GtkStatusIcon*)iupAttribGet(ih, "_IUPDLG_STATUSICON");
  if (status_icon)
    g_object_unref(status_icon);
#endif

  fixed = gtk_bin_get_child((GtkBin*)ih->handle);
  gtk_widget_unrealize(fixed);
  gtk_widget_destroy(fixed);  

  gtk_widget_unrealize(ih->handle); /* To match the call to gtk_widget_realize */
  gtk_widget_destroy(ih->handle);   /* To match the call to gtk_window_new     */
}
Esempio n. 2
0
/* Work around a gtk bug (?): without that, the selected menu item's 
 * colored rectangle is drawn at 0,0 in the window...
 */
static void refresh_menu (GtkWidget *menushell, gpointer data)
{
	GtkMenu *menu = (GtkMenu *)data;
	GtkWidget *widget = gtk_menu_get_attach_widget(menu);
#if !GTK_CHECK_VERSION(3, 0, 0)
	gtk_widget_hide_all(widget);
	gtk_widget_unrealize(widget);
	gtk_widget_show_all(widget);
#else
	gtk_widget_hide(widget);
	gtk_widget_unrealize(widget);
	gtk_widget_show(widget);
#endif
	gtk_widget_queue_draw(widget);
}
Esempio n. 3
0
void iupdrvBaseUnMapMethod(Ihandle* ih)
{
  GtkWidget* widget = (GtkWidget*)iupAttribGet(ih, "_IUP_EXTRAPARENT");
  if (!widget) widget = ih->handle;
  gtk_widget_unrealize(widget);
  gtk_widget_destroy(widget);   /* To match the call to gtk_*****_new     */
}
Esempio n. 4
0
wxNotebookPage *wxNotebook::DoRemovePage( size_t page )
{
    // We cannot remove the page yet, as GTK sends the "switch_page"
    // signal before it has removed the notebook-page from its
    // corresponding list. Thus, if we were to remove the page from
    // m_pages at this point, the two lists of pages would be out
    // of sync during the PAGE_CHANGING/PAGE_CHANGED events.
    wxNotebookPage *client = GetPage(page);
    if ( !client )
        return NULL;

    gtk_widget_unrealize( client->m_widget );

    // we don't need to unparent the client->m_widget; GTK+ will do
    // that for us (and will throw a warning if we do it!)
    gtk_notebook_remove_page( GTK_NOTEBOOK(m_widget), page );

    // It's safe to remove the page now.
    wxASSERT_MSG(GetPage(page) == client, wxT("pages changed during delete"));
    wxNotebookBase::DoRemovePage(page);

    wxGtkNotebookPage* p = GetNotebookPage(page);
    m_pagesData.DeleteObject(p);
    delete p;

    return client;
}
Esempio n. 5
0
wxNotebookPage *wxNotebook::DoRemovePage( size_t page )
{
    if ( m_selection != wxNOT_FOUND && (size_t)m_selection >= page )
    {
        // the index will become invalid after the page is deleted
        m_selection = wxNOT_FOUND;
    }

    wxNotebookPage *client = wxNotebookBase::DoRemovePage(page);
    if ( !client )
        return NULL;

    gtk_widget_ref( client->m_widget );
    gtk_widget_unrealize( client->m_widget );
    gtk_widget_unparent( client->m_widget );

    // gtk_notebook_remove_page() sends "switch_page" signal with some strange
    // new page index (when deleting selected page 0, new page is 1 although,
    // clearly, the selection should stay 0), so suppress this
    gtk_signal_disconnect_by_func( GTK_OBJECT(m_widget),
      GTK_SIGNAL_FUNC(gtk_notebook_page_change_callback), (gpointer) this );

    gtk_notebook_remove_page( GTK_NOTEBOOK(m_widget), page );

    gtk_signal_connect( GTK_OBJECT(m_widget), "switch_page",
      GTK_SIGNAL_FUNC(gtk_notebook_page_change_callback), (gpointer)this );

    wxGtkNotebookPage* p = GetNotebookPage(page);
    m_pagesData.DeleteObject(p);
    delete p;

    return client;
}
Esempio n. 6
0
void realizeOpenGL(struct OpenGL* ogl, long long gtkWindow_) {
	GtkWidget* window = GTK_WIDGET((void*) gtkWindow_);

	GdkGLConfig
			* config = gdk_gl_config_new_by_mode_for_screen(
					gdk_screen_get_default(), GDK_GL_MODE_RGB
							| GDK_GL_MODE_SINGLE/*| GDK_GL_MODE_DOUBLE*/);
	if (config == NULL)
		return;

	//printf("ogl=%p\n", ogl);
	ogl->config = config;

	gtk_widget_unrealize(window);
	if (!gtk_widget_set_gl_capability(window, ogl->config, NULL, FALSE,
			GDK_GL_RGBA_TYPE)) {
		fprintf(stderr, "Cannot enable GDKGL on window");
		return;
	}

	gtk_widget_realize(window);
	GdkGLDrawable* drawable = gtk_widget_get_gl_drawable(GTK_WIDGET(window));

	ogl->drawable = drawable;
	ogl->widget = GTK_WIDGET(window);
	ogl->context = gtk_widget_get_gl_context(ogl->widget);


	glEnableClientState(GL_VERTEX_ARRAY);
	glEnableClientState(GL_COLOR_ARRAY);
	glVertexPointer(2, GL_SHORT, 0, ogl->vertices);
	//gdk_gl_drawable_gl_begin(ogl->drawable, ogl->context);

}
void notify_stack_remove_window(NotifyStack* stack, GtkWindow* nw)
{
	GList* remove_l = NULL;

	notify_stack_shift_notifications(stack, nw, &remove_l, 0, 0, NULL, NULL);

	if (remove_l != NULL)
	{
		stack->windows = g_list_delete_link(stack->windows, remove_l);
	}

	#if GTK_CHECK_VERSION(2, 20, 0)
		if (gtk_widget_get_realized(GTK_WIDGET(nw)))
			gtk_widget_unrealize(GTK_WIDGET(nw));
	#else
		if (GTK_WIDGET_REALIZED(GTK_WIDGET(nw)))
			gtk_widget_unrealize(GTK_WIDGET(nw));
	#endif
}
Esempio n. 8
0
int
clip_GTK_WIDGETUNREALIZE(ClipMachine * cm)
{
	C_widget *cwid = _fetch_cw_arg(cm);
	CHECKCWID(cwid,GTK_IS_WIDGET);
	gtk_widget_unrealize(cwid->widget);
	return 0;
err:
	return 1;
}
Esempio n. 9
0
static void
cinnamon_tray_manager_child_redisplay (gpointer socket_pointer, gpointer child_pointer, gpointer user_data)
{
  CinnamonTrayManagerChild *child = child_pointer;
  
  g_return_if_fail(child != NULL);
  g_return_if_fail(GTK_IS_WIDGET(child->window));
  
  gtk_widget_unrealize(child->window);
  gtk_widget_realize(child->window);
}
Esempio n. 10
0
static void gtkSetGlobalColors(void)
{
  GtkWidget* dialog = gtk_window_new(GTK_WINDOW_TOPLEVEL);
  GtkWidget* text = gtk_entry_new();
  gtk_container_add((GtkContainer*)dialog, text);
  gtk_widget_show(text);
  gtk_widget_realize(text);
  gtk_widget_realize(dialog);
  gtkUpdateGlobalColors(dialog, text);
  gtk_widget_unrealize(dialog);
  gtk_widget_destroy(dialog);
}
Esempio n. 11
0
char* iupdrvGetSystemFont(void)
{
  static char systemfont[200] = "";
  GtkStyle* style;
  GtkWidget* widget = gtk_invisible_new();
  gtk_widget_realize(widget);
  style = gtk_widget_get_style(widget);
  if (!style || !style->font_desc)
    strcpy(systemfont, "Sans, 10");
  else
    strcpy(systemfont, pango_font_description_to_string(style->font_desc));
  gtk_widget_unrealize(widget);
  gtk_widget_destroy(widget);
  return systemfont;
}
Esempio n. 12
0
static void
toplevel_delete_event (GtkWidget *toplevel,
		       GdkEvent  *event,
		       gpointer   none)
{
  GdkWindow *gdk_win;
  GtkWidget *label = create_tab_label (toplevel);

  gdk_win = gtk_widget_get_window (notebook);
  g_assert (gdk_win);

  gtk_widget_hide (toplevel);
  gtk_widget_unrealize (toplevel);

  gtk_widget_set_parent_window (toplevel, gdk_win);
  gtk_notebook_append_page (GTK_NOTEBOOK (notebook), toplevel, label);

  gtk_widget_show (toplevel);
}
Esempio n. 13
0
static void update_properties_for_wm(PagerData* pager)
{
	switch (pager->wm)
	{
		case PAGER_WM_MARCO:
			if (pager->workspaces_frame)
				gtk_widget_show(pager->workspaces_frame);
			if (pager->workspace_names_label)
				gtk_widget_show(pager->workspace_names_label);
			if (pager->workspace_names_scroll)
				gtk_widget_show(pager->workspace_names_scroll);
			if (pager->display_workspaces_toggle)
				gtk_widget_show(pager->display_workspaces_toggle);
			break;
		case PAGER_WM_COMPIZ:
			if (pager->workspaces_frame)
				gtk_widget_show(pager->workspaces_frame);
			if (pager->workspace_names_label)
				gtk_widget_hide(pager->workspace_names_label);
			if (pager->workspace_names_scroll)
				gtk_widget_hide(pager->workspace_names_scroll);
			if (pager->display_workspaces_toggle)
				gtk_widget_hide(pager->display_workspaces_toggle);
			break;
		case PAGER_WM_UNKNOWN:
			if (pager->workspaces_frame)
				gtk_widget_hide(pager->workspaces_frame);
			break;
		default:
			g_assert_not_reached();
	}

#if GTK_CHECK_VERSION (3, 0, 0)
	if (pager->properties_dialog) {
	        gtk_widget_hide (pager->properties_dialog);
	        gtk_widget_unrealize (pager->properties_dialog);
	        gtk_widget_show (pager->properties_dialog);
	}
#else
	if (pager->properties_dialog)
		gtk_window_reshow_with_initial_size(GTK_WINDOW(pager->properties_dialog));
#endif
}
Esempio n. 14
0
void budgie_popover_hide(BudgiePopover *self)
{
        __attribute__ ((unused)) gboolean ret;
        /* tear us down */
        if (self->pointer) {
                gdk_device_ungrab(self->pointer, GDK_CURRENT_TIME);
                self->pointer = NULL;
        }
        gtk_widget_hide(GTK_WIDGET(self));
        if (self->con_id > 0 && self->parent_widget) {
                g_signal_handler_disconnect(self->parent_widget, self->con_id);
                self->parent_widget = NULL;
        }
        g_signal_handler_block(self, self->focus_id);
        g_signal_emit_by_name(self, "focus-out-event", NULL, &ret);
        g_signal_handler_unblock(self, self->focus_id);
        if (gtk_widget_get_realized(GTK_WIDGET(self)))
                gtk_widget_unrealize(GTK_WIDGET(self));
        self->con_id = 0;
}
static void
update_properties_for_wm (PagerData *pager)
{
	switch (pager->wm) {
	case PAGER_WM_METACITY:
		if (pager->workspaces_frame)
			gtk_widget_show (pager->workspaces_frame);
		if (pager->workspace_names_label)
			gtk_widget_show (pager->workspace_names_label);
		if (pager->workspace_names_scroll)
			gtk_widget_show (pager->workspace_names_scroll);
		if (pager->display_workspaces_toggle)
			gtk_widget_show (pager->display_workspaces_toggle);
		break;
	case PAGER_WM_COMPIZ:
		if (pager->workspaces_frame)
			gtk_widget_show (pager->workspaces_frame);
		if (pager->workspace_names_label)
			gtk_widget_hide (pager->workspace_names_label);
		if (pager->workspace_names_scroll)
			gtk_widget_hide (pager->workspace_names_scroll);
		if (pager->display_workspaces_toggle)
			gtk_widget_hide (pager->display_workspaces_toggle);
		break;
	case PAGER_WM_UNKNOWN:
		if (pager->workspaces_frame)
			gtk_widget_hide (pager->workspaces_frame);
		break;
	default:
		g_assert_not_reached ();
	}

	if (pager->properties_dialog) {
	        gtk_widget_hide (pager->properties_dialog);
	        gtk_widget_unrealize (pager->properties_dialog);
	        gtk_widget_show (pager->properties_dialog);
	}
}
Esempio n. 16
0
static void bar_unrealize_clutter_fix_cb(GtkWidget *widget, gpointer data)
{
	GtkWidget *child = gtk_bin_get_child(GTK_BIN(widget));
	if (child) gtk_widget_unrealize(child);
}
Esempio n. 17
0
static VALUE
rg_unrealize(VALUE self)
{
    gtk_widget_unrealize(_SELF(self));
    return self;
}