Esempio n. 1
0
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();

}
Esempio n. 2
0
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;

}