int main (int argc, char *argv[]) { GtkWidget *window; GError** error = NULL; GtkImage *imageKeypadBG; #ifdef ENABLE_NLS bindtextdomain (GETTEXT_PACKAGE, PACKAGE_LOCALE_DIR); bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8"); textdomain (GETTEXT_PACKAGE); #endif gtk_init (&argc, &argv); create_dummy_window(); pixbufBGanm = gdk_pixbuf_animation_new_from_file(BG, error); window = create_window1 (); KeyPadBuilder = gtk_builder_new (); if (!gtk_builder_add_from_file (KeyPadBuilder, KEY_PAD_UI_FILE, error)) { g_critical ("Couldn't load builder file: %s", (*error)->message); g_error_free (*error); } /* Auto-connect signal handlers */ gtk_builder_connect_signals (MainBuilder, NULL); /* Get the window object from the ui file */ KeyPadFrameWidget = GTK_WIDGET (gtk_builder_get_object (KeyPadBuilder, KEY_PAD_FRAME)); if (!window) { g_critical ("Widget \"%s\" is missing in file %s.", KEY_PAD_FRAME, KEY_PAD_UI_FILE); } //gtk_widget_show (KeyPadFrameWidget); GdkPixbufAnimation * pixbufKeypadBGanm = gdk_pixbuf_animation_new_from_file(KEYPAD_BG, error); imageKeypadBG = (GtkImage *) GTK_WIDGET (gtk_builder_get_object (KeyPadBuilder, "keypad_bg")); gtk_image_set_from_animation(GTK_IMAGE(imageKeypadBG), pixbufKeypadBGanm); gtk_widget_show (window); cur_active_screen = wev1_scrn; _start_ticker_timer(); gtk_main(); g_free (priv); return 0; }
static GdkPixbufAnimation * splash_image_load (gboolean be_verbose) { GdkPixbufAnimation *pixbuf; gchar *filename; filename = gimp_personal_rc_file ("gimp-splash.png"); if (be_verbose) g_printerr ("Trying splash '%s' ... ", filename); pixbuf = gdk_pixbuf_animation_new_from_file (filename, NULL); g_free (filename); if (be_verbose) g_printerr (pixbuf ? "OK\n" : "failed\n"); if (pixbuf) return pixbuf; filename = gimp_personal_rc_file ("splashes"); pixbuf = splash_image_pick_from_dir (filename, be_verbose); g_free (filename); if (pixbuf) return pixbuf; filename = g_build_filename (gimp_data_directory (), "images", "gimp-splash.png", NULL); if (be_verbose) g_printerr ("Trying splash '%s' ... ", filename); pixbuf = gdk_pixbuf_animation_new_from_file (filename, NULL); g_free (filename); if (be_verbose) g_printerr (pixbuf ? "OK\n" : "failed\n"); if (pixbuf) return pixbuf; filename = g_build_filename (gimp_data_directory (), "splashes", NULL); pixbuf = splash_image_pick_from_dir (filename, be_verbose); g_free (filename); return pixbuf; }
bool wxAnimation::LoadFile(const wxString &name, wxAnimationType WXUNUSED(type)) { UnRef(); m_pixbuf = gdk_pixbuf_animation_new_from_file( wxConvFileName->cWX2MB(name), NULL); return IsOk(); }
/* This is an internally used function to create animations */ GdkPixbufAnimation * create_pixbuf_animation(const gchar *filename) { gchar *pathname = NULL; GdkPixbufAnimation *pixbuf; GError *error = NULL; if (!filename || !filename[0]) return NULL; pathname = find_pixmap_file (filename); if (!pathname){ g_warning (_("Couldn't find pixmap file: %s"), filename); return NULL; } pixbuf = gdk_pixbuf_animation_new_from_file (pathname, &error); if (!pixbuf){ fprintf (stderr, "Failed to load pixbuf file: %s: %s\n", pathname, error->message); g_error_free (error); } g_free (pathname); return pixbuf; }
GdkPixbufAnimation * ada_gdk_pixbuf_animation_new_from_file (const char *filename, GError **error) { #ifdef GDK_WINDOWING_WIN32 return gdk_pixbuf_animation_new_from_file_utf8 (filename, error); #else return gdk_pixbuf_animation_new_from_file (filename, error); #endif }
void fx_head_change_portrait_func(GtkWidget* widget , GdkEventButton* event , gpointer data) { FxMain *fxmain = (FxMain*)data; char *filename = NULL; GdkPixbufAnimation *anim_pixbuf = NULL; GtkWidget* filechooser = NULL; GdkCursor* cursor = NULL; struct Args1{ FxMain* fxmain; char filename[1024]; } *args = (struct Args1*)malloc(sizeof(struct Args1)); int response; if(event->type == GDK_ENTER_NOTIFY) { cursor = gdk_cursor_new (GDK_HAND2); gdk_window_set_cursor(widget->window , cursor); return; } if(event->type == GDK_LEAVE_NOTIFY) { cursor = gdk_cursor_new (GDK_LEFT_PTR); gdk_window_set_cursor(widget->window , cursor); return; } if(!fx_conn_check_action(fxmain)) return; filechooser = gtk_file_chooser_dialog_new(_("Choose the avatar file to upload") , NULL , GTK_FILE_CHOOSER_ACTION_OPEN , _("Upload") , 1 , _("Cancel") , 2 , NULL); response = gtk_dialog_run(GTK_DIALOG(filechooser)); if(response == 1) { filename = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(filechooser)); if (filename) { anim_pixbuf = gdk_pixbuf_animation_new_from_file(SKIN_DIR"LoadingImage.gif", NULL); gtk_image_set_from_animation(GTK_IMAGE(fxmain->headPanel->portrait) , anim_pixbuf); args->fxmain = fxmain; memset(args->filename, 0, sizeof(args->filename)); strcpy(args->filename , filename); g_thread_create(fx_head_change_portrait_thread , args , FALSE , NULL); } } gtk_widget_destroy(filechooser); }
static int x11_get_image_size(w3mimg_op * self, W3MImage * img, char *fname, int *w, int *h) { struct x11_info *xi; #if defined(USE_IMLIB) ImlibImage *im; #elif defined(USE_IMLIB2) Imlib_Image im; #elif defined(USE_GDKPIXBUF) GdkPixbufAnimation *animation; #endif if (self == NULL) return 0; xi = (struct x11_info *)self->priv; if (xi == NULL) return 0; #if defined(USE_IMLIB) im = Imlib_load_image(xi->id, fname); if (!im) return 0; *w = im->rgb_width; *h = im->rgb_height; Imlib_kill_image(xi->id, im); #elif defined(USE_IMLIB2) im = imlib_load_image(fname); if (im == NULL) return 0; imlib_context_set_image(im); *w = imlib_image_get_width(); *h = imlib_image_get_height(); imlib_free_image(); #elif defined(USE_GDKPIXBUF) animation = gdk_pixbuf_animation_new_from_file(fname); if (!animation) return 0; get_animation_size(animation, w, h, NULL); gdk_pixbuf_animation_unref(animation); #endif return 1; }
GthImage * gth_pixbuf_animation_new_from_file (GInputStream *istream, GthFileData *file_data, int requested_size, int *original_width, int *original_height, gpointer user_data, GCancellable *cancellable, GError **error) { const char *mime_type; GdkPixbufAnimation *animation; char *path; GthImage *image; mime_type = _g_content_type_get_from_stream (istream, (file_data != NULL ? file_data->file : NULL), cancellable, error); if (mime_type == NULL) return NULL; if ((file_data == NULL) || ! g_content_type_equals (mime_type, "image/gif")) return gth_pixbuf_new_from_file (istream, file_data, requested_size, original_width, original_height, FALSE, cancellable, error); path = g_file_get_path (file_data->file); if (path == NULL) { if (error != NULL) *error = g_error_new_literal (G_IO_ERROR, G_IO_ERROR_INVALID_FILENAME, "Could not load file"); return NULL; } animation = gdk_pixbuf_animation_new_from_file (path, error); image = gth_image_new (); gth_image_set_pixbuf_animation (image, animation); g_object_unref (animation); g_free (path); return image; }
static void load_picture (gchar *filename) { anim_pb = gdk_pixbuf_animation_new_from_file (filename, NULL); orig_pb = gdk_pixbuf_animation_get_static_image (anim_pb); if (orig_pb) { if (gdk_pixbuf_animation_is_static_image (anim_pb)) gtk_image_set_from_pixbuf (GTK_IMAGE (picture), orig_pb); else { gtk_image_set_from_animation (GTK_IMAGE (picture), anim_pb); animated = TRUE; } loaded = TRUE; } else gtk_image_set_from_stock (GTK_IMAGE (picture), "gtk-missing-image", GTK_ICON_SIZE_DIALOG); }
static GdkPixbufAnimation * splash_image_pick_from_dir (const gchar *dirname, gboolean be_verbose) { GdkPixbufAnimation *pixbuf = NULL; GDir *dir = g_dir_open (dirname, 0, NULL); if (dir) { const gchar *entry; GList *splashes = NULL; while ((entry = g_dir_read_name (dir))) splashes = g_list_prepend (splashes, g_strdup (entry)); g_dir_close (dir); if (splashes) { gint32 i = g_random_int_range (0, g_list_length (splashes)); gchar *filename = g_build_filename (dirname, g_list_nth_data (splashes, i), NULL); if (be_verbose) g_printerr ("Trying splash '%s' ... ", filename); pixbuf = gdk_pixbuf_animation_new_from_file (filename, NULL); g_free (filename); if (be_verbose) g_printerr (pixbuf ? "OK\n" : "failed\n"); g_list_free_full (splashes, (GDestroyNotify) g_free); } } return pixbuf; }
static void _idle_image_load_animation(Preview * preview) { BrowserPluginHelper * helper = preview->helper; GdkPixbufAnimation * pixbuf; GError * error = NULL; if((pixbuf = gdk_pixbuf_animation_new_from_file(preview->path, &error)) == NULL) { helper->error(helper->browser, error->message, 1); g_error_free(error); return; } if(error != NULL) { helper->error(NULL, error->message, 1); g_error_free(error); } gtk_image_set_from_animation(GTK_IMAGE(preview->view_image_image), pixbuf); g_object_unref(pixbuf); }
static GtkWidget* create_login_window (void) { GtkWidget *window, *button1, *button2, *button3, *button4, *button5, *button6, *phone_number, *age; GtkImage *imageClient, *imageWellth, *imageBG; GtkWidget *vbox1; GtkWidget *butno1, *butno2,*butno3,*butno4,*butno5,*butno6,*butno7,*butno8,*butno9,*butno0,*butno_bs; GError** error = NULL; /* Load UI from file */ /* Auto-connect signal handlers */ gtk_builder_connect_signals (LoginBuilder, NULL); /* Get the window object from the ui file */ window = GTK_WIDGET (gtk_builder_get_object (LoginBuilder, LOGIN_WINDOW)); if (!window) { g_critical ("Widget \"%s\" is missing in file %s.", LOGIN_WINDOW, LOGIN_UI_FILE); } //GdkPixbufAnimation * pixbufclntanm = gdk_pixbuf_animation_new_from_file(CLIENT_LOGO, error); GdkPixbufAnimation * pixbufwlthanm = gdk_pixbuf_animation_new_from_file(WELLTH_LOGO, error); //imageClient = (GtkImage *) GTK_WIDGET (gtk_builder_get_object (LoginBuilder, "clnt_logo")); imageWellth = (GtkImage *) GTK_WIDGET (gtk_builder_get_object (LoginBuilder, "wellth_logo")); //gtk_image_set_from_animation(GTK_IMAGE(imageClient), pixbufclntanm); gtk_image_set_from_animation (GTK_IMAGE(imageWellth), pixbufwlthanm); //GdkPixbufAnimation * pixbufBGanm = gdk_pixbuf_animation_new_from_file(BG1, error); imageBG = (GtkImage *) GTK_WIDGET (gtk_builder_get_object (LoginBuilder, "image1")); gtk_image_set_from_animation(GTK_IMAGE(imageBG), pixbufBGanm); #ifdef DISPLAY_ADD GdkPixbufAnimation * pixbufaddanm = gdk_pixbuf_animation_new_from_file(ADDS2, error); GtkImage *add = (GtkImage *) GTK_WIDGET (gtk_builder_get_object (LoginBuilder, "adds")); gtk_image_set_from_animation(GTK_IMAGE(add), pixbufaddanm); #endif /* button1 = GTK_WIDGET (gtk_builder_get_object (LoginBuilder, "back")); g_signal_connect (G_OBJECT (button1), "clicked", G_CALLBACK (login_cancel_btnclicked), NULL); */ button2 = GTK_WIDGET (gtk_builder_get_object (LoginBuilder, "cancel")); g_signal_connect (G_OBJECT (button2), "clicked", G_CALLBACK (login_cancel_btnclicked), NULL); phone_number = GTK_WIDGET (gtk_builder_get_object (LoginBuilder, "ph_no")); g_signal_connect (G_OBJECT (phone_number), "icon-press", G_CALLBACK (set_ph_no_active), NULL); age = GTK_WIDGET (gtk_builder_get_object (LoginBuilder, "age")); g_signal_connect (G_OBJECT (age), "icon-press", G_CALLBACK (set_age_active), NULL); vbox1 = gtk_vbox_new( FALSE, 6 ); gtk_container_add( GTK_CONTAINER( window ), vbox1 ); GtkFrame *gvp = (GtkFrame *)GTK_WIDGET (gtk_builder_get_object (LoginBuilder,"frame1")); //gtk_box_pack_start( GTK_BOX( vbox1 ), KeyPadFrameWidget, FALSE, FALSE, 0 ); gtk_box_pack_start( GTK_BOX( vbox1 ), gvp, FALSE, FALSE, 0 ); //GtkComboBoxText *height_list = gtk_combo_box_text_new(); gender = gtk_combo_box_text_new(); gtk_container_add( GTK_CONTAINER( gvp ), gender ); gtk_combo_box_text_append_text((GtkComboBoxText *)(gender), (const gchar *)"Male"); gtk_combo_box_text_append_text((GtkComboBoxText *)(gender), (const gchar *)"Female"); g_signal_connect( G_OBJECT( gender ), "changed", G_CALLBACK( cb_changed ), NULL ); /* button3 = GTK_WIDGET (gtk_builder_get_object (LoginBuilder, "sign_up")); g_signal_connect (G_OBJECT (button3), "clicked", G_CALLBACK (login_signup_btnclicked), NULL); */ button4 = GTK_WIDGET (gtk_builder_get_object (LoginBuilder, "go")); g_signal_connect (G_OBJECT (button4), "clicked", G_CALLBACK (login_go_btnclicked), NULL); button5 = GTK_WIDGET (gtk_builder_get_object (LoginBuilder, "clnt_admin")); g_signal_connect (G_OBJECT (button5), "clicked", G_CALLBACK (login_clnt_admin_btnclicked), NULL); button6 = GTK_WIDGET (gtk_builder_get_object (LoginBuilder, "sys_admin")); g_signal_connect (G_OBJECT (button6), "clicked", G_CALLBACK (login_sys_admin_btnclicked), NULL); butno1 = GTK_WIDGET (gtk_builder_get_object (LoginBuilder, "button1")); g_signal_connect (G_OBJECT (butno1), "clicked", G_CALLBACK (key_pad_callback), 1); butno2 = GTK_WIDGET (gtk_builder_get_object (LoginBuilder, "button2")); g_signal_connect (G_OBJECT (butno2), "clicked", G_CALLBACK (key_pad_callback), 2); butno3 = GTK_WIDGET (gtk_builder_get_object (LoginBuilder, "button3")); g_signal_connect (G_OBJECT (butno3), "clicked", G_CALLBACK (key_pad_callback), 3); butno4 = GTK_WIDGET (gtk_builder_get_object (LoginBuilder, "button4")); g_signal_connect (G_OBJECT (butno4), "clicked", G_CALLBACK (key_pad_callback), 4); butno5 = GTK_WIDGET (gtk_builder_get_object (LoginBuilder, "button5")); g_signal_connect (G_OBJECT (butno5), "clicked", G_CALLBACK (key_pad_callback), 5); butno6 = GTK_WIDGET (gtk_builder_get_object (LoginBuilder, "button6")); g_signal_connect (G_OBJECT (butno6), "clicked", G_CALLBACK (key_pad_callback), 6); butno7 = GTK_WIDGET (gtk_builder_get_object (LoginBuilder, "button7")); g_signal_connect (G_OBJECT (butno7), "clicked", G_CALLBACK (key_pad_callback), 7); butno8 = GTK_WIDGET (gtk_builder_get_object (LoginBuilder, "button8")); g_signal_connect (G_OBJECT (butno8), "clicked", G_CALLBACK (key_pad_callback), 8); butno9 = GTK_WIDGET (gtk_builder_get_object (LoginBuilder, "button9")); g_signal_connect (G_OBJECT (butno9), "clicked", G_CALLBACK (key_pad_callback), 9); butno0 = GTK_WIDGET (gtk_builder_get_object (LoginBuilder, "button10")); g_signal_connect (G_OBJECT (butno0), "clicked", G_CALLBACK (key_pad_callback), 0); butno_bs = GTK_WIDGET (gtk_builder_get_object (LoginBuilder, "button11")); g_signal_connect (G_OBJECT (butno_bs), "clicked", G_CALLBACK (key_pad_callback), 100); priv = g_malloc (sizeof (struct _Private)); /* ANJUTA: Widgets initialization for WindowMain.ui - DO NOT REMOVE */ //g_object_unref (InitialBuilder); return window; }
static GtkWidget* create_window2 (void) { GtkWidget *window, *button1, *button2, *button3, *ticker; GtkImage *imageClient, *imageWellth, *imageBG; GError** error = NULL; /* Load UI from file */ /* Auto-connect signal handlers */ gtk_builder_connect_signals (InitialBuilder, NULL); /* Get the window object from the ui file */ window = GTK_WIDGET (gtk_builder_get_object (InitialBuilder, INITIAL_WINDOW)); if (!window) { g_critical ("Widget \"%s\" is missing in file %s.", INITIAL_WINDOW, INITIAL_UI_FILE); } //GdkPixbufAnimation * pixbufclntanm = gdk_pixbuf_animation_new_from_file(CLIENT_LOGO, error); GdkPixbufAnimation * pixbufwlthanm = gdk_pixbuf_animation_new_from_file(WELLTH_LOGO, error); //imageClient = (GtkImage *) GTK_WIDGET (gtk_builder_get_object (InitialBuilder, "clnt_logo")); imageWellth = (GtkImage *) GTK_WIDGET (gtk_builder_get_object (InitialBuilder, "wellth_logo")); //gtk_image_set_from_animation(GTK_IMAGE(imageClient), pixbufclntanm); gtk_image_set_from_animation (GTK_IMAGE(imageWellth), pixbufwlthanm); //GdkPixbufAnimation * pixbufBGanm = gdk_pixbuf_animation_new_from_file(BG2, error); imageBG = (GtkImage *) GTK_WIDGET (gtk_builder_get_object (InitialBuilder, "image1")); gtk_image_set_from_animation(GTK_IMAGE(imageBG), pixbufBGanm); GdkPixbufAnimation * pixbufswipecard = gdk_pixbuf_animation_new_from_file(SMART_CARD, error); GtkImage *sc = (GtkImage *) GTK_WIDGET (gtk_builder_get_object (InitialBuilder, "image2")); gtk_image_set_from_animation(GTK_IMAGE(sc), pixbufswipecard); #ifdef DISPLAY_ADD GdkPixbufAnimation * pixbufaddanm = gdk_pixbuf_animation_new_from_file(ADDS2, error); GtkImage *add = (GtkImage *) GTK_WIDGET (gtk_builder_get_object (InitialBuilder, "adds")); gtk_image_set_from_animation(GTK_IMAGE(add), pixbufaddanm); #endif // button1 = GTK_WIDGET (gtk_builder_get_object (InitialBuilder, "back")); // g_signal_connect (G_OBJECT (button1), "clicked", // G_CALLBACK (back_button_clicked), // NULL); GdkColor color; gdk_color_parse ("#FF0000", &color); gtk_widget_modify_bg ( GTK_WIDGET(button1), GTK_STATE_NORMAL, &color); button2 = GTK_WIDGET (gtk_builder_get_object (InitialBuilder, "login")); g_signal_connect (G_OBJECT (button2), "clicked", G_CALLBACK (login_button_clicked), NULL); //button3 = GTK_WIDGET (gtk_builder_get_object (InitialBuilder, "sign_up")); // g_signal_connect (G_OBJECT (button3), "clicked", // G_CALLBACK (signup_button_clicked), // NULL); //ticker = GTK_WIDGET (gtk_builder_get_object(InitialBuilder, "entry1")); //gtk_entry_set_text(ticker, ticker_text); priv = g_malloc (sizeof (struct _Private)); /* ANJUTA: Widgets initialization for WindowMain.ui - DO NOT REMOVE */ //g_object_unref (InitialBuilder); return window; }
static GtkWidget* create_login_window (void) { GtkWidget *window, *button1, *button2, *button3, *button4, *button5, *button6, *cmpny_mail_entry; GtkImage *imageClient, *imageWellth, *imageBG; GtkWidget *vbox1; GError** error = NULL; /* Load UI from file */ /* Auto-connect signal handlers */ gtk_builder_connect_signals (LoginBuilder, NULL); /* Get the window object from the ui file */ window = GTK_WIDGET (gtk_builder_get_object (LoginBuilder, LOGIN_WINDOW)); if (!window) { g_critical ("Widget \"%s\" is missing in file %s.", LOGIN_WINDOW, LOGIN_UI_FILE); } //GdkPixbufAnimation * pixbufclntanm = gdk_pixbuf_animation_new_from_file(CLIENT_LOGO, error); GdkPixbufAnimation * pixbufwlthanm = gdk_pixbuf_animation_new_from_file(WELLTH_LOGO, error); //imageClient = (GtkImage *) GTK_WIDGET (gtk_builder_get_object (LoginBuilder, "clnt_logo")); imageWellth = (GtkImage *) GTK_WIDGET (gtk_builder_get_object (LoginBuilder, "wellth_logo")); //gtk_image_set_from_animation(GTK_IMAGE(imageClient), pixbufclntanm); gtk_image_set_from_animation (GTK_IMAGE(imageWellth), pixbufwlthanm); //GdkPixbufAnimation * pixbufBGanm = gdk_pixbuf_animation_new_from_file(BG1, error); imageBG = (GtkImage *) GTK_WIDGET (gtk_builder_get_object (LoginBuilder, "image1")); gtk_image_set_from_animation(GTK_IMAGE(imageBG), pixbufBGanm); #ifdef DISPLAY_ADD GdkPixbufAnimation * pixbufaddanm = gdk_pixbuf_animation_new_from_file(ADDS2, error); GtkImage *add = (GtkImage *) GTK_WIDGET (gtk_builder_get_object (LoginBuilder, "adds")); gtk_image_set_from_animation(GTK_IMAGE(add), pixbufaddanm); #endif /* button1 = GTK_WIDGET (gtk_builder_get_object (LoginBuilder, "back")); g_signal_connect (G_OBJECT (button1), "clicked", G_CALLBACK (login_cancel_btnclicked), NULL); */ button2 = GTK_WIDGET (gtk_builder_get_object (LoginBuilder, "cancel")); g_signal_connect (G_OBJECT (button2), "clicked", G_CALLBACK (login_cancel_btnclicked), NULL); cmpny_mail_entry = GTK_WIDGET (gtk_builder_get_object (LoginBuilder, "company_mail")); g_signal_connect (G_OBJECT (cmpny_mail_entry), "icon-press", G_CALLBACK (show_soft_keypad), NULL); vbox1 = gtk_vbox_new( FALSE, 6 ); gtk_container_add( GTK_CONTAINER( window ), vbox1 ); GtkFrame *gvp = (GtkFrame *)GTK_WIDGET (gtk_builder_get_object (LoginBuilder,"frame1")); //gtk_box_pack_start( GTK_BOX( vbox1 ), KeyPadFrameWidget, FALSE, FALSE, 0 ); gtk_box_pack_start( GTK_BOX( vbox1 ), gvp, FALSE, FALSE, 0 ); //GtkComboBoxText *height_list = gtk_combo_box_text_new(); gtk_container_add( GTK_CONTAINER( gvp ), KeyPadFrameWidget ); /* button3 = GTK_WIDGET (gtk_builder_get_object (LoginBuilder, "sign_up")); g_signal_connect (G_OBJECT (button3), "clicked", G_CALLBACK (login_signup_btnclicked), NULL); */ button4 = GTK_WIDGET (gtk_builder_get_object (LoginBuilder, "go")); g_signal_connect (G_OBJECT (button4), "clicked", G_CALLBACK (login_go_btnclicked), NULL); button5 = GTK_WIDGET (gtk_builder_get_object (LoginBuilder, "clnt_admin")); g_signal_connect (G_OBJECT (button5), "clicked", G_CALLBACK (login_clnt_admin_btnclicked), NULL); button6 = GTK_WIDGET (gtk_builder_get_object (LoginBuilder, "sys_admin")); g_signal_connect (G_OBJECT (button6), "clicked", G_CALLBACK (login_sys_admin_btnclicked), NULL); priv = g_malloc (sizeof (struct _Private)); /* ANJUTA: Widgets initialization for WindowMain.ui - DO NOT REMOVE */ //g_object_unref (InitialBuilder); return window; }
static GtkWidget* create_exit_window (void) { GtkWidget *window; GtkImage *imageClient, *imageWellth, *imageTest, *imageBG; GError** error = NULL; /* Load UI from file */ /* Auto-connect signal handlers */ gtk_builder_connect_signals (ExitBuilder, NULL); /* Get the window object from the ui file */ window = GTK_WIDGET (gtk_builder_get_object (ExitBuilder, EXIT_WINDOW)); if (!window) { g_critical ("Widget \"%s\" is missing in file %s.", EXIT_WINDOW, EXIT_UI_FILE); } // //GdkPixbufAnimation * pixbufclntanm = gdk_pixbuf_animation_new_from_file(CLIENT_LOGO, error); GdkPixbufAnimation * pixbufwlthanm = gdk_pixbuf_animation_new_from_file(WELLTH_LOGO, error); //imageClient = (GtkImage *) GTK_WIDGET (gtk_builder_get_object (ExitBuilder, "clnt_logo")); imageWellth = (GtkImage *) GTK_WIDGET (gtk_builder_get_object (ExitBuilder, "wellth_logo")); //gtk_image_set_from_animation(GTK_IMAGE(imageClient), pixbufclntanm); gtk_image_set_from_animation (GTK_IMAGE(imageWellth), pixbufwlthanm); //GdkPixbufAnimation * pixbufBGanm = gdk_pixbuf_animation_new_from_file(BG, error); imageBG = (GtkImage *) GTK_WIDGET (gtk_builder_get_object (ExitBuilder, "image1")); gtk_image_set_from_animation(GTK_IMAGE(imageBG), pixbufBGanm); cb1_1 = GTK_WIDGET (gtk_builder_get_object(ExitBuilder, "checkbutton1")); cb1_2 = GTK_WIDGET (gtk_builder_get_object(ExitBuilder, "checkbutton2")); cb1_3 = GTK_WIDGET (gtk_builder_get_object(ExitBuilder, "checkbutton3")); cb2_1 = GTK_WIDGET (gtk_builder_get_object(ExitBuilder, "checkbutton4")); cb2_2 = GTK_WIDGET (gtk_builder_get_object(ExitBuilder, "checkbutton5")); cb2_3 = GTK_WIDGET (gtk_builder_get_object(ExitBuilder, "checkbutton6")); cb3_1 = GTK_WIDGET (gtk_builder_get_object(ExitBuilder, "checkbutton7")); cb3_2 = GTK_WIDGET (gtk_builder_get_object(ExitBuilder, "checkbutton8")); cb3_3 = GTK_WIDGET (gtk_builder_get_object(ExitBuilder, "checkbutton9")); g_signal_connect (G_OBJECT (cb1_1), "released", G_CALLBACK (exit_set_priority), 1); g_signal_connect (G_OBJECT (cb1_2), "released", G_CALLBACK (exit_set_priority), 2); g_signal_connect (G_OBJECT (cb1_3), "released", G_CALLBACK (exit_set_priority), 3); g_signal_connect (G_OBJECT (cb2_1), "released", G_CALLBACK (exit_set_priority), 4); g_signal_connect (G_OBJECT (cb2_2), "released", G_CALLBACK (exit_set_priority), 5); g_signal_connect (G_OBJECT (cb2_3), "released", G_CALLBACK (exit_set_priority), 6); g_signal_connect (G_OBJECT (cb3_1), "released", G_CALLBACK (exit_set_priority), 7); g_signal_connect (G_OBJECT (cb3_2), "released", G_CALLBACK (exit_set_priority), 8); g_signal_connect (G_OBJECT (cb3_3), "released", G_CALLBACK (exit_set_priority), 9); /* GdkPixbufAnimation * pixbufTestanm = gdk_pixbuf_animation_new_from_file(TEST3, error); imageTest = (GtkImage *) GTK_WIDGET (gtk_builder_get_object (Test3Builder, "image2")); gtk_image_set_from_animation(GTK_IMAGE(imageTest), pixbufTestanm); GdkPixbufAnimation * pixbufaddanm = gdk_pixbuf_animation_new_from_file(ADDS2, error); GtkImage *adds = (GtkImage *) GTK_WIDGET (gtk_builder_get_object (Test3Builder, "adds")); gtk_image_set_from_animation(GTK_IMAGE(adds), pixbufaddanm); //GdkPixbufAnimation * pixbuf1 = gdk_pixbuf_animation_new_from_file(GRAPH, error); //GtkImage * grf = (GtkImage *) GTK_WIDGET (gtk_builder_get_object (Test3Builder, "graph")); //gtk_image_set_from_animation(GTK_IMAGE(grf), pixbuf1); GdkPixbufAnimation * pixbuf2 = gdk_pixbuf_animation_new_from_file(T3_NEXT_ICON, error); GtkImage * nxt_icon = (GtkImage *) GTK_WIDGET (gtk_builder_get_object (Test3Builder, "next_icon")); gtk_image_set_from_animation(GTK_IMAGE(nxt_icon), pixbuf2); */ button1 = GTK_WIDGET (gtk_builder_get_object (ExitBuilder, "exit_btn")); g_signal_connect (G_OBJECT (button1), "clicked", G_CALLBACK (exit_exit_btnclicked), NULL); priv = g_malloc (sizeof (struct _Private)); /* ANJUTA: Widgets initialization for WindowMain.ui - DO NOT REMOVE */ //g_object_unref (InitialBuilder); return window; }
int main (int argc, char *argv[]) { if(argc > 1 && (!strcmp(argv[1], "-h") || !strcmp(argv[1], "-H"))) { printf("Ponies for Linux/GTK+ by rabbit\n"); printf("Command list:\n"); printf("No Parameters: Run with the settings used from last run\n"); printf("-h: Display this help\n"); printf("file path: Set new file path to look for pony gif files\n"); printf("ponyname: Sets to run one of the pony type listed\n"); return 0; } for(int i = 1; i < argc; i++) if(*argv[i] == '/') setPonyDirectory(argv[i]); char* ponyDirectory = NULL; char* ponyHomeFile = NULL; ponyHomeFile = malloc((strlen(getenv("HOME"))+ 9) * sizeof(char)); if(!ponyHomeFile) { printf("Could not allocate memory for ponyHomeFile\n"); return 0; } strcpy(ponyHomeFile, getenv("HOME")); strcat(ponyHomeFile,"/.ponies"); ponyDirectory = getPonyDirectory(); if(!ponyDirectory) { free(ponyHomeFile); printf("Error locating pony directory\n"); return 0; } //Initialize GTK+ and set up loggers GError* error = NULL; g_log_set_handler ("Gtk", G_LOG_LEVEL_WARNING, (GLogFunc) gtk_false, NULL); gtk_init (&argc, &argv); g_log_set_handler ("Gtk", G_LOG_LEVEL_WARNING, g_log_default_handler, NULL); //For command line commands later, require input on inital load //Normally would close, but hard coded in for easier testing int numberOfPonies = 0; if(argc == 1) { //Read in from ~/.ponies file to find saved settings FILE* ifp = NULL; char buffer[256]; ifp = fopen(ponyHomeFile,"r"); if(!ifp) { free(ponyHomeFile); free(ponyDirectory); printf("Could not open file for reading\n"); return 0; } //fread(buffer, sizeof(char), 256, ifp); while(fgets(buffer, 256, ifp)) if(buffer[0] != '\n') numberOfPonies++; fclose(ifp); numberOfPonies--;//First line is directory } //Not default arguments else { for(int i = 1; i < argc; i++) { if(*argv[i] == '/') continue; numberOfPonies++; } } //Seed the randomizer srand(time(0)); //Number of ponies pony ponyArray[numberOfPonies]; char buffer[256]; FILE* ifp = NULL; ifp = fopen(ponyHomeFile,"r"); if(!ifp) { printf("Could not open ~/.ponies\n"); free(ponyDirectory); free(ponyHomeFile); return 0; } fgets(buffer, 256, ifp);//throw away first line //0 Ponies if(!numberOfPonies) { free(ponyDirectory); free(ponyHomeFile); printf("No ponies in the ~/.ponies file! Add some ponies!\n"); printf("allowable ponies are: "); for(int i = 0; i <= Zecora; i++) printf("%s ", getDirectoryName(i)); return 0; } //Make pony windows for( int i = 0; i < numberOfPonies; i++) { fgets(buffer, 256, ifp); char* temp = NULL; temp = strchr(buffer, '\n'); if(temp) buffer[temp - buffer] = '\0'; ponyArray[i].name = ponyNameFromString(buffer); ponyArray[i].direction = DirNone; ponyArray[i].dragActive = 0; ponyArray[i].speed = SpeedStopped; ponyArray[i].animation = AnimIdle; ponyArray[i].active = 1; ponyArray[i].facing = FaceLeft; //Create animation from file, default is idle_left char* initialPicturePath; initialPicturePath = malloc((strlen(ponyDirectory) + strlen(getDirectoryName(ponyArray[i].name)) + 14) * sizeof(char)); if(!initialPicturePath) { printf("Unable to allocate memory for directory"); continue; } strcpy(initialPicturePath, ponyDirectory); strcat(initialPicturePath, getDirectoryName(ponyArray[i].name)); strcat(initialPicturePath, "/idle_left.gif"); ponyArray[i].pictureanim = gdk_pixbuf_animation_new_from_file (initialPicturePath, &error); free(initialPicturePath); ponyArray[i].image = gtk_image_new_from_animation(ponyArray[i].pictureanim); ponyArray[i].pictureanimit = gdk_pixbuf_animation_get_iter (ponyArray[i].pictureanim, NULL); ponyArray[i].win = gtk_window_new(GTK_WINDOW_TOPLEVEL); //Resize everytime the gif updates g_timeout_add(gdk_pixbuf_animation_iter_get_delay_time(ponyArray[i]. pictureanimit),(GSourceFunc)updateWinSize, &ponyArray[i]); //Name the window the name of the pony being animated gtk_window_set_title(GTK_WINDOW(ponyArray[i].win), getPonyName(ponyArray[i].name)); //Size down the window before showing it gtk_window_set_default_size(GTK_WINDOW(ponyArray[i].win), gdk_pixbuf_animation_get_width(ponyArray[i]. pictureanim), gdk_pixbuf_animation_get_height (ponyArray[i].pictureanim)); //Remove the titlebar gtk_window_set_decorated(GTK_WINDOW(ponyArray[i].win), FALSE); //Set up the signals ponyArray[i].clickEventID = g_signal_connect(G_OBJECT(ponyArray[i].win), "button_press_event", G_CALLBACK(click_event), &ponyArray[i]); ponyArray[i].enterEventID = g_signal_connect(G_OBJECT(ponyArray[i].win), "enter-notify-event", G_CALLBACK(enter_event), &ponyArray[i]); ponyArray[i].leaveEventID = g_signal_connect(G_OBJECT(ponyArray[i].win), "leave-notify-event", G_CALLBACK(enter_event), &ponyArray[i]); gtk_widget_add_events(ponyArray[i].win, GDK_BUTTON_PRESS_MASK); gtk_container_add(GTK_CONTAINER(ponyArray[i].win), GTK_WIDGET(ponyArray[i]. image)); //Get rid of taskbar item gtk_window_set_skip_taskbar_hint(GTK_WINDOW(ponyArray[i].win), TRUE); //Make it so it can't be selected gtk_window_set_accept_focus(GTK_WINDOW(ponyArray[i].win), FALSE); gtk_widget_realize(ponyArray[i].win); //Always on top gtk_window_set_keep_above(GTK_WINDOW(ponyArray[i].win), TRUE); updateWinSize(&ponyArray[i]); if(error != NULL) break; } free(ponyDirectory); free(ponyHomeFile); //Quit out if there were any errors and give a message if( error != NULL) { printf("%s\n",error->message); return 0; } //Make it transparent? /*cr = gdk_cairo_create(win->window); cairo_set_source_rgba(cr, 1.0, 1.0, 1.0, 0); cairo_set_operator( cr, CAIRO_OPERATOR_SOURCE); cairo_paint(cr); gtk_container_add(GTK_CONTAINER(win), GTK_WIDGET(image));*/ //Main loop for( int i = 0; i < numberOfPonies; i++) gtk_widget_show_all(ponyArray[i].win); gtk_main(); return 0; }
static GtkWidget* create_test4_b_window (void) { GtkWidget *window; GtkImage *imageClient, *imageWellth, *imageTest, *imageBG, *add; GtkWidget *timer_label; GtkWidget *vbox1; GError** error = NULL; int i=0; char buf[8]; /* Load UI from file */ /* Auto-connect signal handlers */ gtk_builder_connect_signals (Test4bBuilder, NULL); /* Get the window object from the ui file */ window = GTK_WIDGET (gtk_builder_get_object (Test4bBuilder, TEST4_b_WINDOW)); if (!window) { g_critical ("Widget \"%s\" is missing in file %s.", TEST4_b_WINDOW, TEST4B_UI_FILE); } /* GdkPixbufAnimation * pixbufclntanm = gdk_pixbuf_animation_new_from_file(CLIENT_LOGO, error); GdkPixbufAnimation * pixbufwlthanm = gdk_pixbuf_animation_new_from_file(WELLTH_LOGO, error); imageClient = (GtkImage *) GTK_WIDGET (gtk_builder_get_object (Test1Builder, "clnt_logo")); imageWellth = (GtkImage *) GTK_WIDGET (gtk_builder_get_object (Test1Builder, "wellth_logo")); gtk_image_set_from_animation(GTK_IMAGE(imageClient), pixbufclntanm); gtk_image_set_from_animation (GTK_IMAGE(imageWellth), pixbufwlthanm); */ //GdkPixbufAnimation * pixbufBGanm = gdk_pixbuf_animation_new_from_file(BG, error); imageBG = (GtkImage *) GTK_WIDGET (gtk_builder_get_object (Test4bBuilder, "image1")); gtk_image_set_from_animation(GTK_IMAGE(imageBG), pixbufBGanm); /* GdkPixbufAnimation * pixbufTestanm = gdk_pixbuf_animation_new_from_file(TEST1, error); imageTest = (GtkImage *) GTK_WIDGET (gtk_builder_get_object (Test4bBuilder, "image2")); gtk_image_set_from_animation(GTK_IMAGE(imageTest), pixbufTestanm); */ GdkPixbufAnimation * pixbufaddanm = gdk_pixbuf_animation_new_from_file(ADDS2, error); add = (GtkImage *) GTK_WIDGET (gtk_builder_get_object (Test4bBuilder, "adds")); gtk_image_set_from_animation(GTK_IMAGE(add), pixbufaddanm); //#endif //GdkPixbufAnimation * pixbuf1 = gdk_pixbuf_animation_new_from_file(GRAPH, error); //GtkImage * grf = (GtkImage *) GTK_WIDGET (gtk_builder_get_object (Test1Builder, "graph")); //gtk_image_set_from_animation(GTK_IMAGE(grf), pixbuf1); GdkPixbufAnimation * pixbufStat1anm = gdk_pixbuf_animation_new_from_file(QNA_ICON, error); GtkImage* imageTestStat = (GtkImage *) GTK_WIDGET (gtk_builder_get_object (Test4bBuilder, "next_icon")); gtk_image_set_from_animation(GTK_IMAGE(imageTestStat), pixbufStat1anm); /* GdkPixbufAnimation * pixbuf2 = gdk_pixbuf_animation_new_from_file(T_NEXT_ICON, error); GtkImage * nxt_icon = (GtkImage *) GTK_WIDGET (gtk_builder_get_object (Test4bBuilder, "next_icon")); gtk_image_set_from_animation(GTK_IMAGE(nxt_icon), pixbuf2); */ t4b_button1 = GTK_WIDGET (gtk_builder_get_object (Test4bBuilder, "exit")); g_signal_connect (G_OBJECT (t4b_button1), "clicked", G_CALLBACK (test_exit_btnclicked), NULL); t4b_home_button = GTK_WIDGET (gtk_builder_get_object (Test4bBuilder, "home")); g_signal_connect (G_OBJECT (t4b_home_button), "clicked", G_CALLBACK (test_home_btnclicked), NULL); t4b_button5 = GTK_WIDGET (gtk_builder_get_object (Test4bBuilder, "next")); g_signal_connect (G_OBJECT (t4b_button5), "clicked", G_CALLBACK (test4_b_next_btnclicked), NULL); priv = g_malloc (sizeof (struct _Private)); /* ANJUTA: Widgets initialization for WindowMain.ui - DO NOT REMOVE */ //g_object_unref (InitialBuilder); return window; }
bool wxAnimation::LoadFile(const wxString &name, wxAnimationType WXUNUSED(type)) { UnRef(); m_pixbuf = gdk_pixbuf_animation_new_from_file(name.fn_str(), NULL); return IsOk(); }
static GtkWidget* create_window1 (void) { GtkWidget *window, *button1; GtkImage *imageClient, *imageWellth, *imageBG; GError** error = NULL; GTimeVal time; GDate *date_heap; GDate date_stack; gchar tmp_buffer[256]; g_get_current_time( &time ); date_heap = g_date_new(); GDate* mod_date = g_date_new (); g_date_set_time_val( date_heap, &time ); g_date_strftime( tmp_buffer, 256, "%x", date_heap ); g_print( "Current date (heap): %s\n", tmp_buffer ); //g_date_set_year (mod_date, atoi (parts[2])); g_date_free( date_heap ); /* Load UI from file */ MainBuilder = gtk_builder_new (); if (!gtk_builder_add_from_file (MainBuilder, UI_FILE, error)) { g_critical ("Couldn't load builder file: %s", (*error)->message); g_error_free (*error); } /* Auto-connect signal handlers */ gtk_builder_connect_signals (MainBuilder, NULL); /* Get the window object from the ui file */ window = GTK_WIDGET (gtk_builder_get_object (MainBuilder, TOP_WINDOW)); if (!window) { g_critical ("Widget \"%s\" is missing in file %s.", TOP_WINDOW, UI_FILE); } //GdkPixbufAnimation * pixbufclntanm = gdk_pixbuf_animation_new_from_file(CLIENT_LOGO, error); GdkPixbufAnimation * pixbufwlthanm = gdk_pixbuf_animation_new_from_file(WELLTH_LOGO, error); //imageClient = (GtkImage *) GTK_WIDGET (gtk_builder_get_object (MainBuilder, "clnt_logo")); imageWellth = (GtkImage *) GTK_WIDGET (gtk_builder_get_object (MainBuilder, "wellth_logo")); //gtk_image_set_from_animation(GTK_IMAGE(imageClient), pixbufclntanm); gtk_image_set_from_animation (GTK_IMAGE(imageWellth), pixbufwlthanm); //GdkPixbufAnimation * pixbufBGanm = gdk_pixbuf_animation_new_from_file(BG1, error); imageBG = (GtkImage *) GTK_WIDGET (gtk_builder_get_object (MainBuilder, "image1")); gtk_image_set_from_animation(GTK_IMAGE(imageBG), pixbufBGanm); #ifdef DISPLAY_ADD GdkPixbufAnimation * pixbufaddanm = gdk_pixbuf_animation_new_from_file(ADDS2, error); GtkImage *add = (GtkImage *) GTK_WIDGET (gtk_builder_get_object (MainBuilder, "adds")); gtk_image_set_from_animation(GTK_IMAGE(add), pixbufaddanm); #endif button1 = GTK_WIDGET (gtk_builder_get_object (MainBuilder, "main_start_btn")); g_signal_connect (G_OBJECT (button1), "clicked", G_CALLBACK (start_button_clicked), NULL); priv = g_malloc (sizeof (struct _Private)); /* ANJUTA: Widgets initialization for WindowMain.ui - DO NOT REMOVE */ //g_object_unref (MainBuilder); return window; }
static GtkWidget* create_mand_msg_window (void) { GtkWidget *window, *button1, *label;// *button2, *button3; GtkImage *imageClient, *imageWellth, *imageBG; char lbl_buf[64]; GError** error = NULL; /* Load UI from file */ /* Auto-connect signal handlers */ gtk_builder_connect_signals (MandMsgBuilder, NULL); /* Get the window object from the ui file */ window = GTK_WIDGET (gtk_builder_get_object (MandMsgBuilder, MAND_MSG_WINDOW)); if (!window) { g_critical ("Widget \"%s\" is missing in file %s.", MAND_MSG_WINDOW, MAND_MSG_UI_FILE); } //GdkPixbufAnimation * pixbufclntanm = gdk_pixbuf_animation_new_from_file(CLIENT_LOGO, error); //GdkPixbufAnimation * pixbufBGanm = gdk_pixbuf_animation_new_from_file(BG, error); GdkPixbufAnimation * pixbufwlthanm = gdk_pixbuf_animation_new_from_file(WELLTH_LOGO, error); //imageClient = (GtkImage *) GTK_WIDGET (gtk_builder_get_object (MandMsgBuilder, "clnt_logo")); imageWellth = (GtkImage *) GTK_WIDGET (gtk_builder_get_object (MandMsgBuilder, "wellth_logo")); imageBG = (GtkImage *) GTK_WIDGET (gtk_builder_get_object (MandMsgBuilder, "image1")); //gtk_image_set_from_animation(GTK_IMAGE(imageClient), pixbufclntanm); gtk_image_set_from_animation (GTK_IMAGE(imageWellth), pixbufwlthanm); gtk_image_set_from_animation (GTK_IMAGE(imageBG), pixbufBGanm); #ifdef DISPLAY_ADD GdkPixbufAnimation * pixbufaddanm = gdk_pixbuf_animation_new_from_file(ADDS2, error); GtkImage *add = (GtkImage *) GTK_WIDGET (gtk_builder_get_object (MandMsgBuilder, "adds")); gtk_image_set_from_animation(GTK_IMAGE(add), pixbufaddanm); #endif button1 = GTK_WIDGET (gtk_builder_get_object (MandMsgBuilder, "exit")); g_signal_connect (G_OBJECT (button1), "clicked", G_CALLBACK (mand_msg_exit_btnclicked), NULL); label = GTK_WIDGET (gtk_builder_get_object (MandMsgBuilder, "user_name")); strcpy(lbl_buf, "Hi "); strcat(lbl_buf, GlobalUserName); gtk_label_set_label (label, lbl_buf); //button2 = GTK_WIDGET (gtk_builder_get_object (MandMsgBuilder, "back")); // g_signal_connect (G_OBJECT (button2), "clicked", // G_CALLBACK (mand_msg_exit_btnclicked), // NULL); priv = g_malloc (sizeof (struct _Private)); /* ANJUTA: Widgets initialization for WindowMain.ui - DO NOT REMOVE */ //g_object_unref (InitialBuilder); return window; }
int main (int argc, char **argv) { int i; int found_valid = FALSE; GdkPixbufAnimation *animation; gtk_init (&argc, &argv); gdk_rgb_set_verbose (TRUE); gdk_rgb_init (); gtk_widget_set_default_colormap (gdk_rgb_get_cmap ()); gtk_widget_set_default_visual (gdk_rgb_get_visual ()); { char *tbf_readlen = getenv("TBF_READLEN"); if(tbf_readlen) readlen = atoi(tbf_readlen); } { char *tbf_bps = getenv("TBF_KBPS"); guint bps; if (tbf_bps) { bps = atoi(tbf_bps); g_print ("Simulating %d kBytes/sec\n", bps); readlen = (bps*1024)/10; } } i = 1; if (argc == 1) { g_print ("USAGE: testanimation FILE1 ...\n"); return 0; } else { for (i = 1; i < argc; i++) { animation = gdk_pixbuf_animation_new_from_file (argv[i]); if (animation) { gint i = 0; GList *listptr; for (listptr = gdk_pixbuf_animation_get_frames (animation); listptr; listptr = listptr->next) { GdkPixbufFrame *frame; GdkPixbuf *pixbuf; gchar *title; frame = listptr->data; pixbuf = gdk_pixbuf_frame_get_pixbuf (frame); title = g_strdup_printf ("Frame %d", i); g_print ("Frame %d x:%d y:%d width:%d height:%d\n", i, gdk_pixbuf_frame_get_x_offset (frame), gdk_pixbuf_frame_get_y_offset (frame), gdk_pixbuf_get_width (pixbuf), gdk_pixbuf_get_height (pixbuf)); new_testrgb_window (pixbuf, title); g_free (title); i++; } found_valid = TRUE; } } #if 0 { GtkWidget* rgb_window = NULL; ProgressFileStatus status; GdkPixbufLoader *pixbuf_loader; pixbuf_loader = gdk_pixbuf_loader_new (); status.loader = pixbuf_loader; status.rgbwin = &rgb_window; status.buf = g_malloc (readlen); gtk_signal_connect(GTK_OBJECT(pixbuf_loader), "area_prepared", GTK_SIGNAL_FUNC(progressive_prepared_callback), &rgb_window); gtk_signal_connect(GTK_OBJECT(pixbuf_loader), "area_updated", GTK_SIGNAL_FUNC(progressive_updated_callback), &rgb_window); status.imagefile = fopen (argv[1], "r"); g_assert (status.imagefile != NULL); status.readlen = readlen; status.timeout = gtk_timeout_add(100, update_timeout, &status); } #endif } if (found_valid) gtk_main (); return 0; }
static GtkWidget* create_test2_window (void) { GtkWidget *window; GtkImage *imageClient, *imageWellth, *imageTest, *imageBG; GtkWidget *timer_label; GError** error = NULL; /* Load UI from file */ /* Auto-connect signal handlers */ gtk_builder_connect_signals (Test2Builder, NULL); /* Get the window object from the ui file */ window = GTK_WIDGET (gtk_builder_get_object (Test2Builder, TEST2_WINDOW)); if (!window) { g_critical ("Widget \"%s\" is missing in file %s.", TEST2_WINDOW, TEST2_UI_FILE); } GdkPixbufAnimation * pixbufclntanm = gdk_pixbuf_animation_new_from_file(CLIENT_LOGO, error); GdkPixbufAnimation * pixbufwlthanm = gdk_pixbuf_animation_new_from_file(WELLTH_LOGO, error); imageClient = (GtkImage *) GTK_WIDGET (gtk_builder_get_object (Test2Builder, "clnt_logo")); imageWellth = (GtkImage *) GTK_WIDGET (gtk_builder_get_object (Test2Builder, "wellth_logo")); gtk_image_set_from_animation(GTK_IMAGE(imageClient), pixbufclntanm); gtk_image_set_from_animation (GTK_IMAGE(imageWellth), pixbufwlthanm); //GdkPixbufAnimation * pixbufBGanm = gdk_pixbuf_animation_new_from_file(BG, error); imageBG = (GtkImage *) GTK_WIDGET (gtk_builder_get_object (Test2Builder, "image1")); gtk_image_set_from_animation(GTK_IMAGE(imageBG), pixbufBGanm); GdkPixbufAnimation * pixbufTestanm = gdk_pixbuf_animation_new_from_file(TEST2, error); imageTest = (GtkImage *) GTK_WIDGET (gtk_builder_get_object (Test2Builder, "image2")); gtk_image_set_from_animation(GTK_IMAGE(imageTest), pixbufTestanm); GdkPixbufAnimation * pixbufaddanm = gdk_pixbuf_animation_new_from_file(ADDS2, error); GtkImage *adds = (GtkImage *) GTK_WIDGET (gtk_builder_get_object (Test2Builder, "adds")); gtk_image_set_from_animation(GTK_IMAGE(adds), pixbufaddanm); //GdkPixbufAnimation * pixbuf1 = gdk_pixbuf_animation_new_from_file(GRAPH, error); //GtkImage * grf = (GtkImage *) GTK_WIDGET (gtk_builder_get_object (Test2Builder, "graph")); //gtk_image_set_from_animation(GTK_IMAGE(grf), pixbuf1); button1 = GTK_WIDGET (gtk_builder_get_object (Test2Builder, "exit")); g_signal_connect (G_OBJECT (button1), "clicked", G_CALLBACK (test_exit_btnclicked), NULL); profileBtnClickedFrom = test2_pro_btn; button2 = GTK_WIDGET (gtk_builder_get_object (Test2Builder, "profile")); g_signal_connect (G_OBJECT (button2), "clicked", G_CALLBACK (test_profile_btnclicked), profileBtnClickedFrom); bodyFatLabel = GTK_WIDGET (gtk_builder_get_object (Test2Builder, "label5")); //test2_msg = GTK_WIDGET (gtk_builder_get_object (Test2Builder, "label7")); button3 = GTK_WIDGET (gtk_builder_get_object (Test2Builder, "click_to_measure")); button4 = GTK_WIDGET (gtk_builder_get_object (Test2Builder, "repeate")); g_signal_connect (G_OBJECT (button4), "clicked", G_CALLBACK (test2_click_to_measure_btnclicked), NULL); timer_label = GTK_WIDGET (gtk_builder_get_object (Test2Builder, "timer_label")); g_signal_connect (G_OBJECT (button3), "clicked", G_CALLBACK (test2_click_to_measure_btnclicked), NULL); //g_object_set_property (G_OBJECT(button3), "label", "Repeate"); continue_timer = TRUE; start_timer = TRUE; //g_signal_connect(G_OBJECT(button3), "clicked", G_CALLBACK(_start_timer), timer_label); //g_signal_connect(G_OBJECT(button31), "clicked", G_CALLBACK(_start_timer), timer_label); /* button4 = GTK_WIDGET (gtk_builder_get_object (Test2Builder, "set")); g_signal_connect (G_OBJECT (button4), "clicked", G_CALLBACK (test2_set_btnclicked), NULL); */ button5 = GTK_WIDGET (gtk_builder_get_object (Test2Builder, "next")); g_signal_connect (G_OBJECT (button5), "clicked", G_CALLBACK (test2_next_btnclicked), NULL); priv = g_malloc (sizeof (struct _Private)); /* ANJUTA: Widgets initialization for WindowMain.ui - DO NOT REMOVE */ //g_object_unref (InitialBuilder); return window; }
void gaym_gtkconv_update_thumbnail(GaimConversation * conv, struct fetch_thumbnail_data *thumbnail_data) { GaimGtkConversation *gtkconv; char filename[256]; FILE *file; GError *err = NULL; size_t len; GdkPixbuf *buf; GdkPixbuf *scale; GdkPixmap *pm; GdkBitmap *bm; int scale_width, scale_height; GaimAccount *account; GaimPluginProtocolInfo *prpl_info = NULL; g_return_if_fail(conv != NULL); g_return_if_fail(GAIM_IS_GTK_CONVERSATION(conv)); g_return_if_fail(gaim_conversation_get_type(conv) == GAIM_CONV_CHAT); gtkconv = GAIM_GTK_CONVERSATION(conv); GaymChatIcon *icon_data = g_hash_table_lookup(icons, conv); if (!thumbnail_data) return; if (!icon_data->show_icon) return; const char *data = thumbnail_data->pic_data; len = thumbnail_data->pic_data_len; account = gaim_conversation_get_account(conv); if (account && account->gc) prpl_info = GAIM_PLUGIN_PROTOCOL_INFO(account->gc->prpl); if (icon_data->anim != NULL) g_object_unref(G_OBJECT(icon_data->anim)); icon_data->anim = NULL; if (icon_data->icon_timer != 0) g_source_remove(icon_data->icon_timer); icon_data->icon_timer = 0; if (icon_data->iter != NULL) g_object_unref(G_OBJECT(icon_data->iter)); icon_data->iter = NULL; if (!gaim_prefs_get_bool ("/gaim/gtk/conversations/im/show_buddy_icons")) return; if (gaim_conversation_get_gc(conv) == NULL) return; /* this is such an evil hack, i don't know why i'm even considering it. we'll do it differently when gdk-pixbuf-loader isn't leaky anymore. */ /* gdk-pixbuf-loader was leaky? is it still? */ g_snprintf(filename, sizeof(filename), "%s" G_DIR_SEPARATOR_S "gaimicon-%s.%d", g_get_tmp_dir(), thumbnail_data->who, getpid()); if (!(file = g_fopen(filename, "wb"))) return; fwrite(data, 1, len, file); fclose(file); icon_data->anim = gdk_pixbuf_animation_new_from_file(filename, &err); /* make sure we remove the file as soon as possible */ g_unlink(filename); if (err) { gaim_debug(GAIM_DEBUG_ERROR, "gtkconv", "Buddy icon error: %s\n", err->message); g_error_free(err); } if (!icon_data->anim) return; if (gdk_pixbuf_animation_is_static_image(icon_data->anim)) { icon_data->iter = NULL; buf = gdk_pixbuf_animation_get_static_image(icon_data->anim); } else { icon_data->iter = gdk_pixbuf_animation_get_iter(icon_data->anim, NULL); /* LEAK */ buf = gdk_pixbuf_animation_iter_get_pixbuf(icon_data->iter); } get_icon_scale_size(icon_data->anim, prpl_info ? &prpl_info->icon_spec : NULL, &scale_width, &scale_height); scale = gdk_pixbuf_scale_simple(buf, MAX(gdk_pixbuf_get_width(buf) * scale_width / gdk_pixbuf_animation_get_width (icon_data->anim), 1), MAX(gdk_pixbuf_get_height(buf) * scale_height / gdk_pixbuf_animation_get_height (icon_data->anim), 1), GDK_INTERP_NEAREST); gdk_pixbuf_render_pixmap_and_mask(scale, &pm, &bm, 100); g_object_unref(G_OBJECT(scale)); icon_data->event = gtk_event_box_new(); gtk_container_add(GTK_CONTAINER(icon_data->frame), icon_data->event); gtk_widget_set_size_request(GTK_WIDGET(icon_data->frame), scale_width, scale_height); // g_signal_connect(G_OBJECT(icon_data->event), "button-press-event", // G_CALLBACK(icon_menu), conv); gtk_widget_show(icon_data->event); icon_data->icon = gtk_image_new_from_pixmap(pm, bm); gtk_container_add(GTK_CONTAINER(icon_data->event), icon_data->icon); gtk_widget_show(icon_data->icon); g_object_unref(G_OBJECT(pm)); if (bm) g_object_unref(G_OBJECT(bm)); }
static GtkWidget* create_signup_window (void) { GtkWidget *window, *button1, *button2, *button3, *button4; GtkImage *imageClient, *imageWellth, *imageBG; GError** error = NULL; /* Load UI from file */ /* Auto-connect signal handlers */ gtk_builder_connect_signals (SignupBuilder, NULL); /* Get the window object from the ui file */ window = GTK_WIDGET (gtk_builder_get_object (SignupBuilder, SIGNUP_WINDOW)); if (!window) { g_critical ("Widget \"%s\" is missing in file %s.", SIGNUP_WINDOW, SIGNUP_UI_FILE); } GdkPixbufAnimation * pixbufclntanm = gdk_pixbuf_animation_new_from_file(CLIENT_LOGO, error); GdkPixbufAnimation * pixbufwlthanm = gdk_pixbuf_animation_new_from_file(WELLTH_LOGO, error); imageClient = (GtkImage *) GTK_WIDGET (gtk_builder_get_object (SignupBuilder, "clnt_logo")); imageWellth = (GtkImage *) GTK_WIDGET (gtk_builder_get_object (SignupBuilder, "wellth_logo")); gtk_image_set_from_animation(GTK_IMAGE(imageClient), pixbufclntanm); gtk_image_set_from_animation (GTK_IMAGE(imageWellth), pixbufwlthanm); //GdkPixbufAnimation * pixbufBGanm = gdk_pixbuf_animation_new_from_file(BG1, error); imageBG = (GtkImage *) GTK_WIDGET (gtk_builder_get_object (SignupBuilder, "image1")); gtk_image_set_from_animation(GTK_IMAGE(imageBG), pixbufBGanm); #ifdef DISPLAY_ADD GdkPixbufAnimation * pixbufaddanm = gdk_pixbuf_animation_new_from_file(ADDS2, error); GtkImage *add = (GtkImage *) GTK_WIDGET (gtk_builder_get_object (SignupBuilder, "adds")); gtk_image_set_from_animation(GTK_IMAGE(add), pixbufaddanm); #endif /* button1 = GTK_WIDGET (gtk_builder_get_object (SignupBuilder, "back")); g_signal_connect (G_OBJECT (button1), "clicked", G_CALLBACK (signup_cancel_btnclicked), NULL); */ button2 = GTK_WIDGET (gtk_builder_get_object (SignupBuilder, "cancel")); g_signal_connect (G_OBJECT (button2), "clicked", G_CALLBACK (signup_cancel_btnclicked), NULL); button3 = GTK_WIDGET (gtk_builder_get_object (SignupBuilder, "login")); g_signal_connect (G_OBJECT (button3), "clicked", G_CALLBACK (signup_login_btnclicked), NULL); button4 = GTK_WIDGET (gtk_builder_get_object (SignupBuilder, "go")); g_signal_connect (G_OBJECT (button4), "clicked", G_CALLBACK (signup_go_btnclicked), NULL); priv = g_malloc (sizeof (struct _Private)); /* ANJUTA: Widgets initialization for WindowMain.ui - DO NOT REMOVE */ //g_object_unref (InitialBuilder); return window; }
static GtkWidget* create_test1_window (void) { GtkWidget *window; GtkImage *imageClient, *imageWellth, *imageTest, *imageBG, *add; GtkWidget *timer_label; GtkWidget *vbox1; GError** error = NULL; int i=0; char buf[8]; /* Load UI from file */ /* Auto-connect signal handlers */ gtk_builder_connect_signals (Test1Builder, NULL); /* Get the window object from the ui file */ window = GTK_WIDGET (gtk_builder_get_object (Test1Builder, TEST1_WINDOW)); if (!window) { g_critical ("Widget \"%s\" is missing in file %s.", TEST1_WINDOW, TEST1_UI_FILE); } /* GdkPixbufAnimation * pixbufclntanm = gdk_pixbuf_animation_new_from_file(CLIENT_LOGO, error); GdkPixbufAnimation * pixbufwlthanm = gdk_pixbuf_animation_new_from_file(WELLTH_LOGO, error); imageClient = (GtkImage *) GTK_WIDGET (gtk_builder_get_object (Test1Builder, "clnt_logo")); imageWellth = (GtkImage *) GTK_WIDGET (gtk_builder_get_object (Test1Builder, "wellth_logo")); gtk_image_set_from_animation(GTK_IMAGE(imageClient), pixbufclntanm); gtk_image_set_from_animation (GTK_IMAGE(imageWellth), pixbufwlthanm); */ //GdkPixbufAnimation * pixbufBGanm = gdk_pixbuf_animation_new_from_file(BG, error); imageBG = (GtkImage *) GTK_WIDGET (gtk_builder_get_object (Test1Builder, "image1")); gtk_image_set_from_animation(GTK_IMAGE(imageBG), pixbufBGanm); GdkPixbufAnimation * pixbufTestanm = gdk_pixbuf_animation_new_from_file(TEST1, error); imageTest = (GtkImage *) GTK_WIDGET (gtk_builder_get_object (Test1Builder, "image2")); gtk_image_set_from_animation(GTK_IMAGE(imageTest), pixbufTestanm); #ifdef DISPLAY_ADD GdkPixbufAnimation * pixbufaddanm = gdk_pixbuf_animation_new_from_file(ADDS2, error); add = (GtkImage *) GTK_WIDGET (gtk_builder_get_object (Test1Builder, "adds")); gtk_image_set_from_animation(GTK_IMAGE(add), pixbufaddanm); #endif //GdkPixbufAnimation * pixbuf1 = gdk_pixbuf_animation_new_from_file(GRAPH, error); //GtkImage * grf = (GtkImage *) GTK_WIDGET (gtk_builder_get_object (Test1Builder, "graph")); //gtk_image_set_from_animation(GTK_IMAGE(grf), pixbuf1); button1 = GTK_WIDGET (gtk_builder_get_object (Test1Builder, "exit")); g_signal_connect (G_OBJECT (button1), "clicked", G_CALLBACK (test_exit_btnclicked), NULL); vbox1 = gtk_vbox_new( FALSE, 6 ); gtk_container_add( GTK_CONTAINER( window ), vbox1 ); GtkFrame *gvp = (GtkFrame *)GTK_WIDGET (gtk_builder_get_object (Test1Builder,"viewport1")); gtk_box_pack_start( GTK_BOX( vbox1 ), gvp, FALSE, FALSE, 0 ); //GtkComboBoxText *height_list = gtk_combo_box_text_new(); height_list = gtk_combo_box_text_new(); gtk_container_add( GTK_CONTAINER( gvp ), height_list ); //GtkComboBoxText *height_list = (GtkComboBoxText *)GTK_WIDGET (gtk_builder_get_object (Test1Builder,"combobox1")); for(i=START_HT; i<=END_HT;i++){ sprintf(buf,"%d",i); gtk_combo_box_text_append_text((GtkComboBoxText *)(height_list), (const gchar *)buf); strcpy(ht_str, (char *)buf); } //selected_height = gtk_combo_box_text_get_active_text (height_list); profileBtnClickedFrom = test1_pro_btn; button2 = GTK_WIDGET (gtk_builder_get_object (Test1Builder, "profile")); g_signal_connect (G_OBJECT (button2), "clicked", G_CALLBACK (test_profile_btnclicked), profileBtnClickedFrom); button4 = GTK_WIDGET (gtk_builder_get_object (Test1Builder, "repeate")); g_signal_connect (G_OBJECT (button4), "clicked", G_CALLBACK (test1_click_to_measure_btnclicked), NULL); button3 = GTK_WIDGET (gtk_builder_get_object (Test1Builder, "click_to_measure")); timer_label = GTK_WIDGET (gtk_builder_get_object (Test1Builder, "timer_label")); g_signal_connect (G_OBJECT (button3), "clicked", G_CALLBACK (test1_click_to_measure_btnclicked), NULL); continue_timer = TRUE; start_timer = TRUE; //g_signal_connect(G_OBJECT(button3), "clicked", G_CALLBACK(_start_timer), timer_label); //g_signal_connect(G_OBJECT(button31), "clicked", G_CALLBACK(_start_timer), timer_label); //button4 = GTK_WIDGET (gtk_builder_get_object (Test1Builder, "set")); //g_signal_connect (G_OBJECT (button4), "clicked", // G_CALLBACK (test1_set_btnclicked), // NULL); g_signal_connect( G_OBJECT( height_list ), "changed", G_CALLBACK( cb_changed ), NULL ); button5 = GTK_WIDGET (gtk_builder_get_object (Test1Builder, "next")); g_signal_connect (G_OBJECT (button5), "clicked", G_CALLBACK (test1_next_btnclicked), NULL); weight_label = GTK_WIDGET (gtk_builder_get_object (Test1Builder, "label10")); BMI_label = GTK_WIDGET (gtk_builder_get_object (Test1Builder, "label11")); //test1_message = GTK_WIDGET (gtk_builder_get_object (Test1Builder, "label7")); t1_normal_smsg1 = GTK_WIDGET (gtk_builder_get_object (Test1Builder, "t1_normal_smsg1")); t1_normal_smsg2 = GTK_WIDGET (gtk_builder_get_object (Test1Builder, "t1_normal_smsg2")); t1_normal_smsg3 = GTK_WIDGET (gtk_builder_get_object (Test1Builder, "t1_normal_smsg3")); t1_normal_smsg4 = GTK_WIDGET (gtk_builder_get_object (Test1Builder, "t1_normal_smsg4")); t1_result_smsg1 = GTK_WIDGET (gtk_builder_get_object (Test1Builder, "t1_result_smsg1")); t1_result_smsg2 = GTK_WIDGET (gtk_builder_get_object (Test1Builder, "t1_result_smsg2")); t1_result_smsg3 = GTK_WIDGET (gtk_builder_get_object (Test1Builder, "t1_result_smsg3")); t1_result_smsg4 = GTK_WIDGET (gtk_builder_get_object (Test1Builder, "t1_result_smsg4")); priv = g_malloc (sizeof (struct _Private)); /* ANJUTA: Widgets initialization for WindowMain.ui - DO NOT REMOVE */ //g_object_unref (InitialBuilder); return window; }
static GtkWidget* create_test1_b_window (void) { GtkWidget *window; GtkImage *imageClient, *imageWellth, *imageTest, *imageBG, *add; GtkWidget *timer_label; GtkWidget *vbox1; GError** error = NULL; int i=0; char buf[8]; char idl_wt_buf[64]; /* Load UI from file */ /* Auto-connect signal handlers */ gtk_builder_connect_signals (Test1bBuilder, NULL); /* Get the window object from the ui file */ window = GTK_WIDGET (gtk_builder_get_object (Test1bBuilder, TEST1_b_WINDOW)); if (!window) { g_critical ("Widget \"%s\" is missing in file %s.", TEST1_b_WINDOW, TEST1B_UI_FILE); } ideal_weight1 = (float) (UserSummaryData.Height * UserSummaryData.Height * 18.5) / 10000; ideal_weight2 = (float) (UserSummaryData.Height * UserSummaryData.Height * 24.9) / 10000; /* GdkPixbufAnimation * pixbufclntanm = gdk_pixbuf_animation_new_from_file(CLIENT_LOGO, error); GdkPixbufAnimation * pixbufwlthanm = gdk_pixbuf_animation_new_from_file(WELLTH_LOGO, error); imageClient = (GtkImage *) GTK_WIDGET (gtk_builder_get_object (Test1Builder, "clnt_logo")); imageWellth = (GtkImage *) GTK_WIDGET (gtk_builder_get_object (Test1Builder, "wellth_logo")); gtk_image_set_from_animation(GTK_IMAGE(imageClient), pixbufclntanm); gtk_image_set_from_animation (GTK_IMAGE(imageWellth), pixbufwlthanm); */ //GdkPixbufAnimation * pixbufBGanm = gdk_pixbuf_animation_new_from_file(BG, error); imageBG = (GtkImage *) GTK_WIDGET (gtk_builder_get_object (Test1bBuilder, "image1")); gtk_image_set_from_animation(GTK_IMAGE(imageBG), pixbufBGanm); /* GdkPixbufAnimation * pixbufTestanm = gdk_pixbuf_animation_new_from_file(TEST1, error); imageTest = (GtkImage *) GTK_WIDGET (gtk_builder_get_object (Test1bBuilder, "image2")); gtk_image_set_from_animation(GTK_IMAGE(imageTest), pixbufTestanm); */ GdkPixbufAnimation * pixbufaddanm = gdk_pixbuf_animation_new_from_file(ADDS2, error); add = (GtkImage *) GTK_WIDGET (gtk_builder_get_object (Test1bBuilder, "adds")); gtk_image_set_from_animation(GTK_IMAGE(add), pixbufaddanm); //#endif //GdkPixbufAnimation * pixbuf1 = gdk_pixbuf_animation_new_from_file(GRAPH, error); //GtkImage * grf = (GtkImage *) GTK_WIDGET (gtk_builder_get_object (Test1Builder, "graph")); //gtk_image_set_from_animation(GTK_IMAGE(grf), pixbuf1); GdkPixbufAnimation * pixbuf2 = gdk_pixbuf_animation_new_from_file(T1_NEXT_ICON, error); GtkImage * nxt_icon = (GtkImage *) GTK_WIDGET (gtk_builder_get_object (Test1bBuilder, "next_icon")); gtk_image_set_from_animation(GTK_IMAGE(nxt_icon), pixbuf2); button1 = GTK_WIDGET (gtk_builder_get_object (Test1bBuilder, "exit")); g_signal_connect (G_OBJECT (button1), "clicked", G_CALLBACK (test_exit_btnclicked), NULL); g_signal_connect( G_OBJECT( height_list ), "changed", G_CALLBACK( cb_changed ), NULL ); button5 = GTK_WIDGET (gtk_builder_get_object (Test1bBuilder, "next")); g_signal_connect (G_OBJECT (button5), "clicked", G_CALLBACK (test1_b_next_btnclicked), NULL); ideal_weight_label = GTK_WIDGET (gtk_builder_get_object (Test1bBuilder, "ideal_weight")); sprintf(idl_wt_buf, "Your ideal weight range is %03.03f - %03.03f kgs", ideal_weight1, ideal_weight2); gtk_label_set_label (ideal_weight_label, idl_wt_buf); priv = g_malloc (sizeof (struct _Private)); /* ANJUTA: Widgets initialization for WindowMain.ui - DO NOT REMOVE */ //g_object_unref (InitialBuilder); return window; }
static int x11_load_image(w3mimg_op * self, W3MImage * img, char *fname, int w, int h) { struct x11_info *xi; #if defined(USE_IMLIB) ImlibImage *im; #elif defined(USE_IMLIB2) Imlib_Image im; #elif defined(USE_GDKPIXBUF) GdkPixbufAnimation *animation; GList *frames; int i, j, iw, ih, n, frame_num, delay, max_anim; double ratio_w, ratio_h; struct x11_image *ximg; Pixmap tmp_pixmap; #endif if (self == NULL) return 0; xi = (struct x11_info *)self->priv; if (xi == NULL) return 0; #if defined(USE_IMLIB) im = Imlib_load_image(xi->id, fname); if (!im) return 0; if (w <= 0) w = im->rgb_width; if (h <= 0) h = im->rgb_height; img->pixmap = (void *)XCreatePixmap(xi->display, xi->parent, w, h, DefaultDepth(xi->display, 0)); if (!img->pixmap) return 0; XSetForeground(xi->display, xi->imageGC, xi->background_pixel); XFillRectangle(xi->display, (Pixmap) img->pixmap, xi->imageGC, 0, 0, w, h); Imlib_paste_image(xi->id, im, (Pixmap) img->pixmap, 0, 0, w, h); Imlib_kill_image(xi->id, im); #elif defined(USE_IMLIB2) im = imlib_load_image(fname); if (!im) return 0; imlib_context_set_image(im); if (w <= 0) w = imlib_image_get_width(); if (h <= 0) h = imlib_image_get_height(); img->pixmap = (void *)XCreatePixmap(xi->display, xi->parent, w, h, DefaultDepth(xi->display, 0)); if (!img->pixmap) return 0; XSetForeground(xi->display, xi->imageGC, xi->background_pixel); XFillRectangle(xi->display, (Pixmap) img->pixmap, xi->imageGC, 0, 0, w, h); imlib_context_set_display(xi->display); imlib_context_set_visual(DefaultVisual(xi->display, 0)); imlib_context_set_colormap(DefaultColormap(xi->display, 0)); imlib_context_set_drawable((Drawable) img->pixmap); imlib_render_image_on_drawable_at_size(0, 0, w, h); imlib_free_image(); #elif defined(USE_GDKPIXBUF) max_anim = self->max_anim; animation = gdk_pixbuf_animation_new_from_file(fname); if (!animation) return 0; frames = gdk_pixbuf_animation_get_frames(animation); frame_num = n = gdk_pixbuf_animation_get_num_frames(animation); get_animation_size(animation, &iw, &ih, &delay); if (delay <= 0) max_anim = -1; if (max_anim < 0) { frame_num = (-max_anim > n) ? n : -max_anim; } else if (max_anim > 0) { frame_num = n = (max_anim > n) ? n : max_anim; } if (w < 1 || h < 1) { w = iw; h = ih; ratio_w = ratio_h = 1; } else { ratio_w = 1.0 * w / iw; ratio_h = 1.0 * h / ih; } tmp_pixmap = XCreatePixmap(xi->display, xi->parent, w, h, DefaultDepth(xi->display, 0)); XFillRectangle(xi->display, (Pixmap) tmp_pixmap, xi->imageGC, 0, 0, w, h); if (!tmp_pixmap) { gdk_pixbuf_animation_unref(animation); return 0; } ximg = x11_img_new(xi, w, h, frame_num); if (!ximg) { XFreePixmap(xi->display, tmp_pixmap); gdk_pixbuf_animation_unref(animation); return 0; } for (j = 0; j < n; j++) { GdkPixbufFrame *frame; GdkPixbuf *org_pixbuf, *pixbuf; int width, height, ofstx, ofsty; if (max_anim < 0) { i = (j - n + frame_num > 0) ? (j - n + frame_num) : 0; } else { i = j; } frame = (GdkPixbufFrame *) g_list_nth_data(frames, j); org_pixbuf = gdk_pixbuf_frame_get_pixbuf(frame); ofstx = gdk_pixbuf_frame_get_x_offset(frame); ofsty = gdk_pixbuf_frame_get_y_offset(frame); delay = gdk_pixbuf_frame_get_delay_time(frame); width = gdk_pixbuf_get_width(org_pixbuf); height = gdk_pixbuf_get_height(org_pixbuf); if (ofstx == 0 && ofsty == 0 && width == w && height == h) { pixbuf = resize_image(org_pixbuf, w, h); } else { pixbuf = resize_image(org_pixbuf, width * ratio_w, height * ratio_h); ofstx *= ratio_w; ofsty *= ratio_h; } width = gdk_pixbuf_get_width(pixbuf); height = gdk_pixbuf_get_height(pixbuf); if (delay > ximg->delay) ximg->delay = delay; XCopyArea(xi->display, tmp_pixmap, ximg->pixmap[i], xi->imageGC, 0, 0, w, h, 0, 0); gdk_pixbuf_xlib_render_to_drawable_alpha(pixbuf, (Drawable) ximg->pixmap[i], 0, 0, ofstx, ofsty, width, height, GDK_PIXBUF_ALPHA_BILEVEL, 1, XLIB_RGB_DITHER_NORMAL, 0, 0); switch (gdk_pixbuf_frame_get_action(frame)) { case GDK_PIXBUF_FRAME_RETAIN: XCopyArea(xi->display, ximg->pixmap[i], tmp_pixmap, xi->imageGC, 0, 0, w, h, 0, 0); break; case GDK_PIXBUF_FRAME_DISPOSE: break; case GDK_PIXBUF_FRAME_REVERT: XCopyArea(xi->display, ximg->pixmap[0], tmp_pixmap, xi->imageGC, 0, 0, w, h, 0, 0); break; default: XCopyArea(xi->display, ximg->pixmap[0], tmp_pixmap, xi->imageGC, 0, 0, w, h, 0, 0); break; } if (org_pixbuf != pixbuf) gdk_pixbuf_finalize(pixbuf); } XFreePixmap(xi->display, tmp_pixmap); gdk_pixbuf_animation_unref(animation); img->pixmap = ximg; #endif img->width = w; img->height = h; return 1; }