int main(int argc, char **argv) { char imgpath[50]; ///////////////////////////////////Get app Path/////////////////////////////////// char path_save[PATH_MAX]; char abs_exe_path[PATH_MAX]; char *p; if(!(p = strrchr(argv[0], '/'))) getcwd(abs_exe_path, sizeof(abs_exe_path)); else { *p = '\0'; getcwd(path_save, sizeof(path_save)); chdir(argv[0]); getcwd(abs_exe_path, sizeof(abs_exe_path)); chdir(path_save); } //////////////////////////////////////////////////////////////////////////////// printf("\n\n-*-*-*-*-* A piece of Gtk+ code by MAhezh -*-*-*-*-*-*\n\n"); gtk_init(&argc, &argv); GtkWidget *window = gtk_window_new(GTK_WINDOW_TOPLEVEL); gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER); gtk_window_set_default_size(GTK_WINDOW(window), 10, 10); gtk_window_set_title(GTK_WINDOW(window), "Win orb"); g_signal_connect(G_OBJECT(window), "delete-event", gtk_main_quit, NULL); gtk_widget_set_app_paintable(window, TRUE); g_signal_connect(G_OBJECT(window), "draw", G_CALLBACK(draw), NULL); g_signal_connect(G_OBJECT(window), "screen-changed", G_CALLBACK(screen_changed), NULL); gtk_window_set_decorated(GTK_WINDOW(window), FALSE); gtk_widget_add_events(window, GDK_BUTTON_PRESS_MASK); g_signal_connect(G_OBJECT(window), "button-press-event", G_CALLBACK(on_button_press), NULL); //g_signal_connect(G_OBJECT(window), "button-press-event", G_CALLBACK(clicked), NULL); GtkWidget* fixed_container = gtk_fixed_new(); gtk_container_add(GTK_CONTAINER(window), fixed_container); sprintf(imgpath,"%s/img/metronew.png",abs_exe_path); GtkWidget *image = gtk_image_new_from_file(imgpath); gtk_container_add(GTK_CONTAINER(fixed_container), image); screen_changed(window, NULL, NULL); ////////////////////////////////////// Window 2 ////////////////////////////////////////////// GtkWidget *window2 = gtk_window_new(GTK_WINDOW_TOPLEVEL); gtk_window_set_position(GTK_WINDOW(window2), GTK_WIN_POS_CENTER); gtk_window_set_default_size(GTK_WINDOW(window2), 10, 10); gtk_window_set_title(GTK_WINDOW(window2), "Win orb"); gtk_window_set_opacity(GTK_WINDOW(window2),0.0); g_signal_connect(G_OBJECT(window2), "delete-event", gtk_main_quit, NULL); gtk_widget_set_app_paintable(window2, TRUE); g_signal_connect(G_OBJECT(window2), "draw", G_CALLBACK(draw), NULL); g_signal_connect(G_OBJECT(window2), "screen-changed", G_CALLBACK(screen_changed), NULL); gtk_window_set_decorated(GTK_WINDOW(window2), FALSE); gtk_widget_add_events(window2, GDK_BUTTON_PRESS_MASK); // g_signal_connect(G_OBJECT(window2), "button-press-event", // G_CALLBACK(on_button_press), NULL); g_signal_connect_swapped(G_OBJECT(window2), "button-press-event", G_CALLBACK(on_button_press), window2); //g_signal_connect(G_OBJECT(window2), "button-press-event", G_CALLBACK(clicked), NULL); GtkWidget* fixed_container2 = gtk_fixed_new(); gtk_container_add(GTK_CONTAINER(window2), fixed_container2); sprintf(imgpath,"%s/img/metroglow.png",abs_exe_path); GtkWidget *image2 = gtk_image_new_from_file(imgpath); gtk_container_add(GTK_CONTAINER(fixed_container2), image2); screen_changed(window2, NULL, NULL); //////////////////////////////////////////////////////////////////////////////////////////////// gtk_widget_show_all(window); gtk_widget_show_all(window2); //window_2(); /////////////////////////////////////OPACITY/////////////////////////////////////////////////////// int timer; float vl = 0.0; int tnt; gboolean mouse_enter() { if(tnt==1) { timer = g_timeout_add ( 3, mouse_enter, NULL ); vl = vl + 0.008; gtk_window_set_opacity(GTK_WINDOW(window2), vl); if (vl >= 1.0) { g_source_remove (timer); return FALSE; printf("Still running\n"); //vl = 0; } } } gboolean mouse_leave() //function for timeouts must be a boolean { if(tnt==0) { timer = g_timeout_add ( 3, mouse_leave, NULL ); vl = vl - 0.008; gtk_window_set_opacity(GTK_WINDOW(window2), vl); if (vl <= 0.0) { g_source_remove (timer); return FALSE; //vl = 1.0; } } } int me() { //g_source_remove (timer); tnt=1; printf("Entered %d\n", tnt); mouse_enter(); }
int main(int argc, char **argv) { int i; gtk_init(&argc, &argv); struct my_gtk mygtk; GtkWidget *window = gtk_window_new(GTK_WINDOW_TOPLEVEL); GtkWidget *box = gtk_box_new(1,0); // 1: vbox, 0:hbox GtkWidget *box_btns = gtk_box_new(0,0); // 1: vbox, 0:hbox //GtkWidget* view; GtkTextBuffer* buffer = NULL; gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER); gtk_window_set_default_size(GTK_WINDOW(window), 1000, 700); gtk_window_set_title(GTK_WINDOW(window), "Our Editor"); g_signal_connect(G_OBJECT(window), "delete-event", gtk_main_quit, NULL); gtk_widget_set_app_paintable(window, TRUE); g_signal_connect(G_OBJECT(window), "draw", G_CALLBACK(draw), NULL); g_signal_connect(G_OBJECT(window), "screen-changed", G_CALLBACK(screen_changed), NULL); gtk_window_set_decorated(GTK_WINDOW(window), TRUE); gtk_widget_add_events(window, GDK_BUTTON_PRESS_MASK); gtk_container_add(GTK_CONTAINER(window), box); GtkWidget* btns[8]; for(i=0; i<5; i++) { btns[i] = gtk_button_new(); } gtk_button_set_label(GTK_BUTTON(btns[0]), "Select Fonts"); gtk_button_set_label(GTK_BUTTON(btns[1]), "Open Images"); gtk_button_set_label(GTK_BUTTON(btns[2]), "Save txt"); gtk_button_set_label(GTK_BUTTON(btns[3]), "Open txt"); gtk_button_set_label(GTK_BUTTON(btns[4]), ""); view = gtk_text_view_new(); gtk_text_view_set_left_margin (GTK_TEXT_VIEW ( view ) , 10 ) ; gtk_text_view_set_right_margin (GTK_TEXT_VIEW ( view ) , 10 ) ; gtk_text_view_set_pixels_above_lines(GTK_TEXT_VIEW(view), 5); buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(view)); // gtk_text_buffer_set_text(buffer, "", -1); mygtk.file_one = view; mygtk.file_two = buffer; mygtk.my_window = window; mygtk.bashflag = 0; for(i=0;i<5;i++) { mygtk.btns[i] = btns[i]; } g_signal_connect(window, "key-release-event", G_CALLBACK(key_event), &mygtk); g_signal_connect(G_OBJECT(btns[0]), "button-press-event", G_CALLBACK(select_font), &mygtk); g_signal_connect(G_OBJECT(btns[1]), "button-press-event", G_CALLBACK(open_image), &mygtk); g_signal_connect(G_OBJECT(btns[2]), "button-press-event", G_CALLBACK(save_txt), &mygtk); g_signal_connect(G_OBJECT(btns[3]), "button-press-event", G_CALLBACK(open_txt), &mygtk); gtk_widget_set_size_request(view, 1000,650); for(i=0; i<4; i++) { gtk_container_add(GTK_CONTAINER(box_btns), btns[i]); gtk_widget_set_size_request(btns[i], 100, 50); } gtk_container_add(GTK_CONTAINER(box_btns), btns[4]); gtk_widget_set_size_request(btns[4], 600, 50); gtk_container_add(GTK_CONTAINER(box), box_btns); gtk_container_add(GTK_CONTAINER(box), view); screen_changed(window, NULL, NULL); gtk_widget_show_all(window); gtk_main(); return 0; }