/** * grits_opengl_new: * @plugins: the plugins store to use * @prefs: the preferences object to use * * Create a new OpenGL renderer. * * Returns: the new #GritsOpenGL */ GritsViewer *grits_opengl_new(GritsPlugins *plugins, GritsPrefs *prefs) { g_debug("GritsOpenGL: new"); GritsViewer *opengl = g_object_new(GRITS_TYPE_OPENGL, NULL); grits_viewer_setup(opengl, plugins, prefs); return opengl; }
/**************** * GObject code * ****************/ static void aweather_gui_parser_finished(GtkBuildable *_self, GtkBuilder *builder) { g_debug("AWeatherGui: parser finished"); AWeatherGui *self = AWEATHER_GUI(_self); self->builder = builder; /* Simple things */ gchar *config = g_build_filename(g_get_user_config_dir(), PACKAGE, "config.ini", NULL); gchar *defaults = g_build_filename(PKGDATADIR, "defaults.ini", NULL); self->prefs = grits_prefs_new(config, defaults); self->plugins = grits_plugins_new(PLUGINSDIR, self->prefs); self->viewer = GRITS_VIEWER(aweather_gui_get_widget(self, "main_viewer")); self->gtk_plugins = GTK_LIST_STORE(aweather_gui_get_object(self, "plugins")); grits_viewer_setup(self->viewer, self->plugins, self->prefs); g_free(config); g_free(defaults); /* Misc, helpers */ site_setup(self); menu_setup(self); time_setup(self); prefs_setup(self); icons_setup(self); /* Default size */ gint width = grits_prefs_get_integer(self->prefs, "aweather/width", NULL); gint height = grits_prefs_get_integer(self->prefs, "aweather/height", NULL); if (width && height) gtk_window_set_default_size(GTK_WINDOW(self), width, height); /* Connect signals */ gtk_builder_connect_signals(self->builder, self); g_signal_connect(self, "key-press-event", G_CALLBACK(on_gui_key_press), self); g_signal_connect_swapped(self->viewer, "offline", G_CALLBACK(gtk_toggle_action_set_active), aweather_gui_get_object(self, "offline")); g_signal_connect_swapped(self->viewer, "refresh", G_CALLBACK(set_update_timeout), self); g_signal_connect_swapped(self->viewer, "realize", G_CALLBACK(aweather_gui_load_plugins), self); }