Switch to cmake

This commit is contained in:
daleclack 2021-06-11 09:23:55 +08:00
parent 105fd2c76e
commit 6140258396
57 changed files with 22 additions and 1657 deletions

View File

@ -1,57 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<CodeBlocks_project_file>
<FileVersion major="1" minor="6" />
<Project>
<Option title="gtk42" />
<Option pch_mode="2" />
<Option compiler="gcc" />
<Build>
<Target title="Debug">
<Option output="bin/Debug/gtk42" prefix_auto="1" extension_auto="1" />
<Option object_output="obj/Debug/" />
<Option type="0" />
<Option compiler="gcc" />
<Compiler>
<Add option="-g" />
<Add directory="../" />
</Compiler>
</Target>
<Target title="Release">
<Option output="bin/Release/gtk42" prefix_auto="1" extension_auto="1" />
<Option object_output="obj/Release/" />
<Option type="0" />
<Option compiler="gcc" />
<Compiler>
<Add option="-O2" />
<Add directory="../" />
</Compiler>
<Linker>
<Add option="-s" />
</Linker>
</Target>
</Build>
<Compiler>
<Add option="-Wall" />
</Compiler>
<Unit filename="../src/background.cpp" />
<Unit filename="../src/background.h" />
<Unit filename="../src/game.cpp" />
<Unit filename="../src/game.h" />
<Unit filename="../src/main.cpp" />
<Unit filename="../src/panel1.cpp" />
<Unit filename="../src/panel1.h" />
<Unit filename="../src/panel2.cpp" />
<Unit filename="../src/panel2.h" />
<Unit filename="../src/resources.cpp" />
<Unit filename="../src/win1.cpp" />
<Unit filename="../src/win1.h" />
<Unit filename="../src/winconf.cpp" />
<Unit filename="../src/winconf.h" />
<Unit filename="icon.rc">
<Option compilerVar="WINDRES" />
</Unit>
<Extensions>
<lib_finder disable_auto="1" />
</Extensions>
</Project>
</CodeBlocks_project_file>

View File

@ -1,67 +0,0 @@
# depslib dependency file v1.0
1613552905 source:d:\gtk3\gtk42\src\background.cpp
"background.h"
"winconf.h"
"winpe.xpm"
1613195745 d:\gtk3\gtk42\src\background.h
<gtk/gtk.h>
1613270288 d:\gtk3\gtk42\src\winconf.h
<gtk/gtk.h>
1613125939 d:\gtk3\gtk42\\winpe.xpm
1614135385 source:d:\gtk3\gtk42\src\main.cpp
<gtk/gtk.h>
"background.h"
"winconf.h"
"panel1.h"
"panel2.h"
1613357404 d:\gtk3\gtk42\src\panel1.h
<gtk/gtk.h>
1613650403 d:\gtk3\gtk42\src\panel2.h
<gtk/gtk.h>
1613872672 source:d:\gtk3\gtk42\src\panel1.cpp
<ctime>
"panel1.h"
"winconf.h"
"background.h"
1613549116 source:d:\gtk3\gtk42\src\win1.cpp
"win1.h"
1613879080 d:\gtk3\gtk42\src\win1.h
<gtk/gtk.h>
1613552872 source:d:\gtk3\gtk42\src\winconf.cpp
<cstdio>
"winconf.h"
1613125939 d:\gtk3\gtk42\src\winpe.xpm
1613879180 source:d:\gtk3\gtk42\src\panel2.cpp
<cstdlib>
<thread>
"panel2.h"
"win1.h"
"game.h"
1614135733 source:d:\gtk3\gtk42\src\resources.cpp
<gio/gio.h>
<stdlib.h>
1613650621 source:d:\gtk3\gtk42\gtk42\icon.rc
1613878878 d:\gtk3\gtk42\src\game.h
<gtk/gtk.h>
<ctime>
<cstdlib>
<cstring>
1613878921 source:d:\gtk3\gtk42\src\game.cpp
"game.h"

View File

@ -1,30 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<CodeBlocks_layout_file>
<FileVersion major="1" minor="0" />
<ActiveTarget name="Release" />
<File name="icon.rc" open="0" top="0" tabpos="3" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="28" topLine="0" />
</Cursor>
</File>
<File name="..\src\panel2.cpp" open="1" top="0" tabpos="1" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="735" topLine="57" />
</Cursor>
</File>
<File name="..\src\panel2.h" open="0" top="0" tabpos="2" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="399" topLine="0" />
</Cursor>
</File>
<File name="..\src\panel1.cpp" open="0" top="0" tabpos="4" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="16" topLine="0" />
</Cursor>
</File>
<File name="..\src\main.cpp" open="1" top="1" tabpos="2" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="883" topLine="0" />
</Cursor>
</File>
</CodeBlocks_layout_file>

View File

@ -1 +0,0 @@
MAINICON ICON "Icon_1.ico"

Binary file not shown.

Before

Width:  |  Height:  |  Size: 97 KiB

View File

@ -1,52 +0,0 @@
#include "background.h"
#include "winconf.h"
#include "winpe.xpm"
void fileopen(GtkWidget *widget,GtkBuilder *builder){
GObject *parent=gtk_builder_get_object(builder,"window");
//Change background
GtkWidget *dialog;
GtkFileChooserAction action=GTK_FILE_CHOOSER_ACTION_OPEN;
dialog=gtk_file_chooser_dialog_new("Choose a image File",GTK_WINDOW(parent),action,
"OK",GTK_RESPONSE_OK,"Cancel",GTK_RESPONSE_CANCEL,NULL);
//Use GtkFileFilter to select image file
GtkFileFilter *filter=gtk_file_filter_new();
gtk_file_filter_add_pattern(filter,"*.png");
gtk_file_filter_add_pattern(filter,"*.jpg");
gtk_file_filter_add_pattern(filter,"*.jpeg");
gtk_file_filter_add_pattern(filter,"*.bmp");
gtk_file_filter_add_pattern(filter,"*.xpm");
gtk_file_chooser_set_filter(GTK_FILE_CHOOSER(dialog),filter);
gtk_widget_show(dialog);
g_signal_connect(dialog,"response",G_CALLBACK(dialog_response),builder);
}
void dialog_response(GtkWidget *widget,int response,GtkBuilder *builder){
//Handle file chooser response and set background
int width=640,height=360;
get_config(&width,&height);
GObject *background=gtk_builder_get_object(builder,"background");
const gchar *filename;
GFile *file;
//g_print("%s\n",filename);
if(response==GTK_RESPONSE_OK){
file=gtk_file_chooser_get_file(GTK_FILE_CHOOSER(widget));
filename=g_file_get_path(file);
GdkPixbuf *pixbuf=gdk_pixbuf_new_from_file(filename,NULL);
GdkPixbuf *sized=gdk_pixbuf_scale_simple(pixbuf,width,height,GDK_INTERP_BILINEAR);
gtk_image_set_from_pixbuf(GTK_IMAGE(background),sized);
g_object_unref(pixbuf);
g_object_unref(sized);
}
gtk_widget_destroy(widget);
}
void default_background(GtkBuilder *builder){
//Set the default background
int width=640,height=360;
get_config(&width,&height);
GObject *background=gtk_builder_get_object(builder,"background");
GdkPixbuf *pixbuf=gdk_pixbuf_new_from_xpm_data(winpe);
GdkPixbuf *sized=gdk_pixbuf_scale_simple(pixbuf,width,height,GDK_INTERP_BILINEAR);
gtk_image_set_from_pixbuf(GTK_IMAGE(background),sized);
}

View File

@ -1,14 +0,0 @@
#ifndef __BACK_H_
#define __BACK_H_
#include <gtk/gtk.h>
void default_background(GtkBuilder *builder);
void fileopen(GtkWidget *widget,GtkBuilder *builder);
void dialog_response(GtkWidget *widget,int response,GtkBuilder *builder);
#endif

View File

@ -1,73 +0,0 @@
#include "game.h"
GObject *button[4];
GObject *label;
const char *btn_index[4]={"0","1","2","3"};
int flag;
void btn_click(GtkWidget *widget,gpointer data){
//Get image
GdkPixbuf *pixbuf=gdk_pixbuf_new_from_resource("/gtk42/icon.jpg",NULL);
GdkPixbuf *sized=gdk_pixbuf_scale_simple(pixbuf,50,50,GDK_INTERP_BILINEAR);
GtkWidget *image=gtk_image_new_from_pixbuf(sized);
//Get button index
char str[2];
strcpy(str,(char*)data);
//Set a image to the flag button and judge
gtk_button_set_image((GtkButton*)button[flag],image);
if(flag==str[0]-48){
gtk_label_set_label(GTK_LABEL(label),"Good luck!");
}else{
gtk_label_set_label(GTK_LABEL(label),"Flag missed.");
}
for(int i=0;i<4;i++){
gtk_widget_set_sensitive(GTK_WIDGET(button[i]),FALSE);
}
}
void buttons_init(GtkBuilder *builder){
//Initalize buttons
for(int i=0;i<4;i++){
char str[6];
sprintf(str,"btn_%d",i+1);
button[i]=gtk_builder_get_object(builder,str);
g_signal_connect(button[i],"clicked",G_CALLBACK(btn_click),(gpointer)btn_index[i]);
gtk_button_set_always_show_image(GTK_BUTTON(button[i]),TRUE);
}
}
void btngo_click(GtkWidget *widget,gpointer data){
//Reinitalize the buttons and the flag
gtk_label_set_label(GTK_LABEL(label),"Select a button");
for(int i=0;i<4;i++){
gtk_widget_set_sensitive(GTK_WIDGET(button[i]),TRUE);
gtk_button_set_image((GtkButton*)button[i],NULL);
}
srand((unsigned)time(NULL));
int x=rand();
flag=x%4;
}
void gamemain(GtkWidget *widget,GtkWindow *parent){
//Get objects from the Gtkbuilder and initalize the application
GtkBuilder *builder=gtk_builder_new();
GObject *window;
GdkPixbuf *pixbuf=gdk_pixbuf_new_from_resource("/gtk42/icon.jpg",NULL);
gtk_builder_add_from_resource(builder,"/gtk42/game1.ui",NULL);
window=gtk_builder_get_object(builder,"window");
gtk_window_set_icon(GTK_WINDOW(window),pixbuf);
//Get buttons from GtkBuilder
buttons_init(builder);
GObject *btn_go=gtk_builder_get_object(builder,"btn_go");
g_signal_connect(btn_go,"clicked",G_CALLBACK(btngo_click),(gpointer)builder);
GObject *btn_exit=gtk_builder_get_object(builder,"btn_exit");
g_signal_connect_swapped(btn_exit,"clicked",G_CALLBACK(gtk_widget_destroy),GTK_WIDGET(window));
label=gtk_builder_get_object(builder,"label");
//Initalize the flag
srand((unsigned)time(NULL));
int x=rand();
flag=x%4;
gtk_window_set_transient_for(GTK_WINDOW(window),parent);
gtk_widget_show_all(GTK_WIDGET(window));
g_object_unref(pixbuf);
}

View File

@ -1,17 +0,0 @@
#ifndef __GAME_H_
#define __GAME_H_
#include <gtk/gtk.h>
#include <ctime>
#include <cstdlib>
#include <cstring>
void btn_click(GtkWidget *widget,gpointer data);
void buttons_init(GtkBuilder *builder);
void btngo_click(GtkWidget *widget,gpointer data);
void gamemain(GtkWidget *widget,GtkWindow *parent);
#endif

View File

@ -1,47 +0,0 @@
#include <gtk/gtk.h>
#include "background.h"
#include "winconf.h"
#include "panel1.h"
#include "panel2.h"
static void gtkmain(GtkApplication *app,gpointer user_data){
//Get main window
int width=640,height=360;
get_config(&width,&height);
//GtkBuilder *builder=gtk_builder_new_from_file("res/window.ui");
GtkBuilder *builder=gtk_builder_new_from_resource("/gtk42/window.ui");
GObject *window=gtk_builder_get_object(builder,"window");
gtk_window_set_default_size(GTK_WINDOW(window),width,height);
gtk_window_set_icon_name(GTK_WINDOW(window),"org.gtk.daleclack");
//Home button
GObject *img_home=gtk_builder_get_object(builder,"image1");
gtk_image_set_from_resource(GTK_IMAGE(img_home),"/gtk42/user-home.png");
//Get button for change background(moved to panel 1)
/*GObject *btn_back=gtk_builder_get_object(builder,"btnback");
g_signal_connect(btn_back,"clicked",G_CALLBACK(fileopen),builder);*/
//Config button(moved to panel 1)
/*GObject *btn_conf=gtk_builder_get_object(builder,"btnset");
g_signal_connect(btn_conf,"clicked",G_CALLBACK(conf_dialog),builder);*/
//default background
default_background(builder);
//Add a top panel with timer
GObject *fixed=gtk_builder_get_object(builder,"fixed");
add_toppanel(builder,GTK_FIXED(fixed));
add_leftpanel(builder,GTK_FIXED(fixed));
//Add window to the application and show
gtk_application_add_window(app,GTK_WINDOW(window));
gtk_widget_show_all(GTK_WIDGET(window));
}
int main(int argc,char *argv[]){
GtkApplication *app;
int status;
app=gtk_application_new("org.gtk.daleclack",G_APPLICATION_NON_UNIQUE);
g_signal_connect(app,"activate",G_CALLBACK(gtkmain),NULL);
status=g_application_run(G_APPLICATION(app),argc,argv);
return status;
}

View File

@ -1,59 +0,0 @@
#include <ctime>
#include "panel1.h"
#include "winconf.h"
#include "background.h"
gboolean change_time(gpointer data){
//Get local time
time_t t;
struct tm *local;
t=time(NULL);
local=localtime(&t);
//Format the time and set the time
char current_time[20];
sprintf(current_time,"%02d:%02d %04d/%02d/%02d",
local->tm_hour,local->tm_min,local->tm_year+1900,local->tm_mon+1,local->tm_mday);
//g_print("%s\n",current_time);
gtk_label_set_label(GTK_LABEL(data),current_time);
return TRUE;
}
void add_toppanel(GtkBuilder *builder,GtkFixed *fixed){
//Get position
int width=640,height=480;
get_config(&width,&height);
//Get panel
GtkBuilder *panel=gtk_builder_new_from_resource("/gtk42/toppanel.ui");
GObject *panel1=gtk_builder_get_object(panel,"btnbox");
gtk_widget_set_size_request(GTK_WIDGET(panel1),width,15);
//Get timer label and set time
GObject *label_time=gtk_builder_get_object(panel,"label_time");
g_timeout_add(100,change_time,label_time);
//Get popover window
GObject *popover=gtk_builder_get_object(panel,"popover1");
//Get button for change background
GObject *btn_back=gtk_builder_get_object(panel,"btnback");
GObject *img_back=gtk_builder_get_object(panel,"image3");
gtk_image_set_from_resource(GTK_IMAGE(img_back),"/gtk42/graphics.png");
//gtk_button_set_image(GTK_BUTTON(btn_back),GTK_WIDGET(img_back));
gtk_button_set_always_show_image(GTK_BUTTON(btn_back),TRUE);
g_signal_connect(btn_back,"clicked",G_CALLBACK(fileopen),builder);
g_signal_connect_swapped(btn_back,"clicked",G_CALLBACK(gtk_widget_hide),popover);
//Config button
GObject *btn_conf=gtk_builder_get_object(panel,"btnset");
GObject *img_set=gtk_builder_get_object(panel,"image5");
gtk_image_set_from_resource(GTK_IMAGE(img_set),"/gtk42/system.png");
//gtk_button_set_image(GTK_BUTTON(btn_conf),GTK_WIDGET(img_set));
gtk_button_set_always_show_image(GTK_BUTTON(btn_conf),TRUE);
g_signal_connect(btn_conf,"clicked",G_CALLBACK(conf_dialog),builder);
g_signal_connect_swapped(btn_conf,"clicked",G_CALLBACK(gtk_widget_hide),popover);
//Get Exit button
GObject *btn_exit=gtk_builder_get_object(panel,"PanelExit");
GObject *img_exit=gtk_builder_get_object(panel,"image4");
gtk_image_set_from_resource(GTK_IMAGE(img_exit),"/gtk42/log-out.png");
//gtk_button_set_image(GTK_BUTTON(btn_exit),GTK_WIDGET(img_exit));
gtk_button_set_always_show_image(GTK_BUTTON(btn_exit),TRUE);
GObject *window=gtk_builder_get_object(builder,"window");
g_signal_connect_swapped(btn_exit,"clicked",G_CALLBACK(gtk_widget_destroy),window);
gtk_fixed_put(fixed,GTK_WIDGET(panel1),0,0);
}

View File

@ -1,10 +0,0 @@
#ifndef __TIMER_H_
#define __TIMER_H_
#include <gtk/gtk.h>
gboolean change_time(gpointer data);
void add_toppanel(GtkBuilder *builder,GtkFixed *fixed);
#endif

View File

@ -1,87 +0,0 @@
#include <cstdlib>
#include <thread>
#include "panel2.h"
#include "win1.h"
#include "game.h"
void add_leftpanel(GtkBuilder *builder,GtkFixed *fixed){
//Get Left panel
GtkBuilder *panel2=gtk_builder_new_from_resource("/gtk42/leftpanel.ui");
GObject *panel=gtk_builder_get_object(panel2,"left_panel");
//Set start button and image
GObject *btn_image=gtk_builder_get_object(panel2,"btn_image");
GdkPixbuf *pixbuf=gdk_pixbuf_new_from_resource("/gtk42/icon.png",NULL);
GdkPixbuf *sized=gdk_pixbuf_scale_simple(pixbuf,40,40,GDK_INTERP_BILINEAR);
gtk_image_set_from_pixbuf(GTK_IMAGE(btn_image),sized);
//Get popover window
GObject *popover=gtk_builder_get_object(panel2,"popover1");
//Button image
GtkWidget *img_vlc=gtk_image_new_from_resource("/gtk42/vlc.png");
GtkWidget *img_aud=gtk_image_new_from_resource("/gtk42/audacious.png");
GtkWidget *img_gedit=gtk_image_new_from_resource("/gtk42/gedit.png");
//Audacious bin exec
GObject *btn_audacious=gtk_builder_get_object(panel2,"btnaud");
gtk_button_set_image(GTK_BUTTON(btn_audacious),img_aud);
g_signal_connect(btn_audacious,"clicked",G_CALLBACK(btnaud_clicked),NULL);
g_signal_connect_swapped(btn_audacious,"clicked",G_CALLBACK(gtk_widget_hide),popover);
//vlc exec button for linux
GObject *btnvlc=gtk_builder_get_object(panel2,"btnvlc");
GObject *img_vlc1=gtk_builder_get_object(panel2,"image1");
gtk_image_set_from_resource(GTK_IMAGE(img_vlc1),"/gtk42/vlc.png");
g_signal_connect(btnvlc,"clicked",G_CALLBACK(btnvlc_clicked),NULL);
g_signal_connect_swapped(btnvlc,"clicked",G_CALLBACK(gtk_widget_hide),popover);
//Start Gedit Text Editor
GObject *btngedit=gtk_builder_get_object(panel2,"btngedit");
GObject *img_gedit1=gtk_builder_get_object(panel2,"image2");
gtk_image_set_from_resource(GTK_IMAGE(img_gedit1),"/gtk42/gedit.png");
g_signal_connect(btngedit,"clicked",G_CALLBACK(btngedit_clicked),NULL);
g_signal_connect_swapped(btngedit,"clicked",G_CALLBACK(gtk_widget_hide),popover);
//Notepad on windows
GObject *btnnote=gtk_builder_get_object(panel2,"btn_note");
gtk_button_set_image(GTK_BUTTON(btnnote),img_gedit);
g_signal_connect(btnnote,"clicked",G_CALLBACK(btnnote_clicked),NULL);
g_signal_connect_swapped(btnnote,"clicked",G_CALLBACK(gtk_widget_hide),popover);
//VLC on windows
GObject *btn_vlc=gtk_builder_get_object(panel2,"btn_vlc");
gtk_button_set_image(GTK_BUTTON(btn_vlc),img_vlc);
g_signal_connect(btn_vlc,"clicked",G_CALLBACK(btnvlc_win32),NULL);
g_signal_connect_swapped(btn_vlc,"clicked",G_CALLBACK(gtk_widget_hide),popover);
//Get main window
GObject *window=gtk_builder_get_object(builder,"window");
//Gtk31 application
GObject *btngame=gtk_builder_get_object(panel2,"btngame");
g_signal_connect(btngame,"clicked",G_CALLBACK(gamemain),window);
g_signal_connect_swapped(btngame,"clicked",G_CALLBACK(gtk_widget_hide),popover);
//About window
GObject *btn_about=gtk_builder_get_object(panel2,"btnabout");
g_signal_connect(btn_about,"clicked",G_CALLBACK(win1_init),window);
g_signal_connect_swapped(btn_about,"clicked",G_CALLBACK(gtk_widget_hide),popover);
gtk_fixed_put(fixed,GTK_WIDGET(panel),0,25);
g_object_unref(pixbuf);
g_object_unref(sized);
}
void btnvlc_clicked(GtkWidget *widget,gpointer data){
std::thread first(system,"vlc");
first.detach();
}
void btngedit_clicked(GtkWidget *widget,gpointer data){
std::thread second(system,"gedit");
second.detach();
}
void btnaud_clicked(GtkWidget *widget,gpointer data){
std::thread third(system,"audacious");
third.detach();
}
void btnnote_clicked(GtkWidget *widget,gpointer data){
std::thread fourth(system,"start notepad");
fourth.detach();
}
void btnvlc_win32(GtkWidget *widget,gpointer data){
std::thread fifth(system,"start ..\\vlc\\vlc.exe");
fifth.detach();
}

View File

@ -1,18 +0,0 @@
#ifndef __PANEL2_H_
#define __PANEL2_H_
#include <gtk/gtk.h>
void add_leftpanel(GtkBuilder *builder,GtkFixed *fixed);
void btnvlc_clicked(GtkWidget *widget,gpointer data);
void btngedit_clicked(GtkWidget *widget,gpointer data);
void btnaud_clicked(GtkWidget *widget,gpointer data);
void btnnote_clicked(GtkWidget *widget,gpointer data);
void btnvlc_win32(GtkWidget *widget,gpointer data);
#endif

View File

@ -1,14 +0,0 @@
#include "win1.h"
void win1_init(GtkWidget *widget,GtkWindow *parent){
//"About" window
GtkBuilder *win1=gtk_builder_new_from_resource("/gtk42/win1.ui");
GObject *window1=gtk_builder_get_object(win1,"window1");
gtk_window_set_transient_for(GTK_WINDOW(window1),parent);
//Window icon fix for win32 platform
GdkPixbuf *logo=gdk_pixbuf_new_from_resource("/gtk42/icon.jpg",NULL);
GdkPixbuf *logo_sized=gdk_pixbuf_scale_simple(logo,100,100,GDK_INTERP_BILINEAR);
gtk_about_dialog_set_logo(GTK_ABOUT_DIALOG(window1),logo_sized);
g_signal_connect_swapped(window1,"response",G_CALLBACK(gtk_widget_destroy),window1);
gtk_widget_show_all(GTK_WIDGET(window1));
}

View File

@ -1,8 +0,0 @@
#ifndef __WIN1_H_
#define __WIN1_H_
#include <gtk/gtk.h>
void win1_init(GtkWidget *widget,GtkWindow *parent);
#endif

View File

@ -1,73 +0,0 @@
#include <cstdio>
#include "winconf.h"
void conf_dialog(GtkWidget *widget,GtkBuilder *builder){
//Window config dialog
GtkBuilder *conf_size=gtk_builder_new_from_resource("/gtk42/win_size.ui");
GObject *dialog=gtk_builder_get_object(conf_size,"dialog");
GObject *window=gtk_builder_get_object(builder,"window");
gtk_window_set_transient_for(GTK_WINDOW(dialog),GTK_WINDOW(window));
g_signal_connect(dialog,"response",G_CALLBACK(conf_response),conf_size);
//Set default config
GObject *entry_width=gtk_builder_get_object(conf_size,"entry_width");
gtk_entry_set_text(GTK_ENTRY(entry_width),"640");
GObject *entry_height=gtk_builder_get_object(conf_size,"entry_height");
gtk_entry_set_text(GTK_ENTRY(entry_height),"360");
//Get window size
GObject *btnGet=gtk_builder_get_object(conf_size,"btnGet");
g_signal_connect(btnGet,"clicked",G_CALLBACK(get_winsize),conf_size);
//Reset to default
GObject *btn_default=gtk_builder_get_object(conf_size,"btn_default");
g_signal_connect(btn_default,"clicked",G_CALLBACK(set_default),conf_size);
gtk_widget_show_all(GTK_WIDGET(dialog));
}
void conf_response(GtkWidget *widget,int response,GtkBuilder *builder_conf){
//Get width and height config and put the numbers into winsize.conf file
GObject *entry_width,*entry_height;
entry_width=gtk_builder_get_object(builder_conf,"entry_width");
entry_height=gtk_builder_get_object(builder_conf,"entry_height");
if(response==GTK_RESPONSE_OK){
const gchar *width,*height;
width=gtk_entry_get_text(GTK_ENTRY(entry_width));
height=gtk_entry_get_text(GTK_ENTRY(entry_height));
freopen("winsize.conf","w",stdout);
g_print("%s %s",width,height);
fclose(stdout);
}
gtk_widget_destroy(widget);
}
void set_default(GtkWidget *widget,GtkBuilder *builder_conf){
//Discard changes and set to default config
GObject *entry_width=gtk_builder_get_object(builder_conf,"entry_width");
GObject *entry_height=gtk_builder_get_object(builder_conf,"entry_height");
gtk_entry_set_text(GTK_ENTRY(entry_width),"640");
gtk_entry_set_text(GTK_ENTRY(entry_height),"360");
}
void get_winsize(GtkWidget *widget,GtkBuilder *builder_conf){
//Get current window size
int width=640,height=360;
char width1[7],height1[7];
GtkWindow *window;
//Get dialog window and entry
GObject *dialog=gtk_builder_get_object(builder_conf,"dialog");
GObject *entry_width=gtk_builder_get_object(builder_conf,"entry_width");
GObject *entry_height=gtk_builder_get_object(builder_conf,"entry_height");
//Get main window
window=gtk_window_get_transient_for(GTK_WINDOW(dialog));
gtk_window_get_size(GTK_WINDOW(window),&width,&height);
//g_print("%d %d\n",width,height);
sprintf(width1,"%d",width);
sprintf(height1,"%d",height);
gtk_entry_set_text(GTK_ENTRY(entry_width),width1);
gtk_entry_set_text(GTK_ENTRY(entry_height),height1);
}
void get_config(int *width,int *height){
freopen("winsize.conf","r",stdin);
scanf("%d",width);
scanf("%d",height);
fclose(stdin);
}

View File

@ -1,16 +0,0 @@
#ifndef __WIN_CONF_
#define __WIN_CONF_
#include <gtk/gtk.h>
void conf_dialog(GtkWidget *widget,GtkBuilder *builder);
void conf_response(GtkWidget *widget,int response,GtkBuilder *builder_conf);
void set_default(GtkWidget *widget,GtkBuilder *builder_conf);
void get_winsize(GtkWidget *widget,GtkBuilder *buider_conf);
void get_config(int *width,int *height);
#endif

File diff suppressed because it is too large Load Diff

19
Gtkmm3/CMakeLists.txt Normal file
View File

@ -0,0 +1,19 @@
set(CMAKE_CXX_STANDARD 17)
cmake_minimum_required(VERSION 3.0.0)
project(gtk84 VERSION 0.1.0)
include(CTest)
enable_testing()
set(CPACK_PROJECT_NAME ${PROJECT_NAME})
set(CPACK_PROJECT_VERSION ${PROJECT_VERSION})
include(CPack)
find_package (PkgConfig REQUIRED)
pkg_check_modules (GTKMM3 REQUIRED gtkmm-3.0)
include_directories (${GTKMM3_INCLUDE_DIRS})
link_directories (${GTKMM3_LIBRARY_DIRS})
add_executable(gtk84 src/main.cc src/MyWin.cc)
add_definitions (${GTKMM3_CFLAGS_OTHER})
target_link_libraries (${PROJECT_NAME} ${GTKMM3_LIBRARIES})

3
Gtkmm3/build_mingw.cmd Normal file
View File

@ -0,0 +1,3 @@
cd build_mingw
mingw32-make
gtk84

View File

Before

Width:  |  Height:  |  Size: 618 B

After

Width:  |  Height:  |  Size: 618 B

View File

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

View File

Before

Width:  |  Height:  |  Size: 444 B

After

Width:  |  Height:  |  Size: 444 B

View File

Before

Width:  |  Height:  |  Size: 3.8 KiB

After

Width:  |  Height:  |  Size: 3.8 KiB

View File

Before

Width:  |  Height:  |  Size: 93 KiB

After

Width:  |  Height:  |  Size: 93 KiB

View File

Before

Width:  |  Height:  |  Size: 74 KiB

After

Width:  |  Height:  |  Size: 74 KiB

View File

Before

Width:  |  Height:  |  Size: 371 B

After

Width:  |  Height:  |  Size: 371 B

View File

Before

Width:  |  Height:  |  Size: 3.6 KiB

After

Width:  |  Height:  |  Size: 3.6 KiB

View File

Before

Width:  |  Height:  |  Size: 539 B

After

Width:  |  Height:  |  Size: 539 B

View File

Before

Width:  |  Height:  |  Size: 6.2 KiB

After

Width:  |  Height:  |  Size: 6.2 KiB

View File

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 1.7 KiB

View File

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB