Add gtk27

This commit is contained in:
daleclack 2020-12-19 15:46:03 +08:00
parent 68b5c1983b
commit 76ea511d26
8 changed files with 160 additions and 0 deletions

38
Gtk3/gtk27/GtkClass.cpp Normal file
View File

@ -0,0 +1,38 @@
#include "GtkClass.h"
void GtkWin::win_init(int width,int height){
_window=GTK_WINDOW(main_window);
gtk_window_set_default_size(_window,width,height);
gtk_window_set_position(_window,GTK_WIN_POS_CENTER);
}
void GtkWin::set_titlebar(GtkWidget *widget){
_window=GTK_WINDOW(main_window);
gtk_window_set_titlebar(_window,widget);
}
void GtkWin::add_widget(GtkWidget *widget){
gtk_container_add(GTK_CONTAINER(main_window),widget);
}
void GtkWin::show_all(){
gtk_widget_show_all(main_window);
}
void Winheader::header_init(){
_header=GTK_HEADER_BAR(header);
gtk_header_bar_set_decoration_layout(_header,"close,minimize,maximize:menu");
gtk_header_bar_set_show_close_button(_header,TRUE);
}
void Winheader::pack_start(GtkWidget *child){
gtk_header_bar_pack_start(_header,child);
}
void Winheader::pack_end(GtkWidget *child){
gtk_header_bar_pack_end(_header,child);
}
void Winlayout::put(GtkWidget *child,int x,int y){
gtk_layout_put(GTK_LAYOUT(layout),child,x,y);
}

26
Gtk3/gtk27/GtkClass.h Normal file
View File

@ -0,0 +1,26 @@
#include <gtk/gtk.h>
class GtkWin{
GtkWindow *_window;
public:
GtkWidget *main_window;
void win_init(int width,int height);
void set_titlebar(GtkWidget *widget);
void add_widget(GtkWidget *widget);
void show_all();
};
class Winheader{
GtkHeaderBar *_header;
public:
GtkWidget *header=gtk_header_bar_new();
void header_init();
void pack_start(GtkWidget *child);
void pack_end(GtkWidget *child);
};
class Winlayout{
public:
GtkWidget *layout=gtk_layout_new(NULL,NULL);
void put(GtkWidget *child,int x,int y);
};

36
Gtk3/gtk27/gtk27.cbp Normal file
View File

@ -0,0 +1,36 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<CodeBlocks_project_file>
<FileVersion major="1" minor="6" />
<Project>
<Option title="gtk27" />
<Option pch_mode="2" />
<Option compiler="gcc" />
<Build>
<Target title="Debug">
<Option output="bin/Debug/gtk27" prefix_auto="1" extension_auto="1" />
<Option object_output="obj/Debug/" />
<Option type="1" />
<Option compiler="gcc" />
<Compiler>
<Add option="-g" />
</Compiler>
</Target>
<Target title="Release">
<Option output="bin/Release/gtk27" prefix_auto="1" extension_auto="1" />
<Option object_output="obj/Release/" />
<Option type="1" />
<Option compiler="gcc" />
<Compiler>
<Add option="-O2" />
</Compiler>
<Linker>
<Add option="-s" />
</Linker>
</Target>
</Build>
<Compiler>
<Add option="-Wall" />
</Compiler>
<Extensions />
</Project>
</CodeBlocks_project_file>

18
Gtk3/gtk27/gtk27.depend Normal file
View File

@ -0,0 +1,18 @@
# depslib dependency file v1.0
1608348169 source:/root/cpp49/main.cpp
"GtkClass.h"
"winclass.h"
1608348789 /root/cpp49/GtkClass.h
<gtk/gtk.h>
1608347671 source:/root/cpp49/GtkClass.cpp
"GtkClass.h"
1608348251 /root/cpp49/winclass.h
<gtk/gtk.h>
1608348243 source:/root/cpp49/winclass.cpp
"winclass.h"
"GtkClass.h"

5
Gtk3/gtk27/gtk27.layout Normal file
View File

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<CodeBlocks_layout_file>
<FileVersion major="1" minor="0" />
<ActiveTarget name="Debug" />
</CodeBlocks_layout_file>

17
Gtk3/gtk27/main.cpp Normal file
View File

@ -0,0 +1,17 @@
#include "GtkClass.h"
#include "winclass.h"
static void activate(GtkApplication *app,gpointer user_data){
GtkMain win_main;
win_main.init(app);
}
int main(int argc,char *argv[]){
GtkApplication *app;
int status;
app=gtk_application_new("com.github.gtk27",G_APPLICATION_FLAGS_NONE);
g_signal_connect(app,"activate",G_CALLBACK(activate),NULL);
status=g_application_run(G_APPLICATION(app),argc,argv);
g_object_unref(app);
return status;
}

14
Gtk3/gtk27/winclass.cpp Normal file
View File

@ -0,0 +1,14 @@
#include "winclass.h"
#include "GtkClass.h"
void GtkMain::init(GtkApplication *app){
GtkWin window;
Winheader header;
window.main_window=gtk_application_window_new(app);
window.win_init(400,300);
header.header_init();
window.set_titlebar(header.header);
window.show_all();
};

6
Gtk3/gtk27/winclass.h Normal file
View File

@ -0,0 +1,6 @@
#include <gtk/gtk.h>
class GtkMain{
public:
void init(GtkApplication *app);
};