Add gtk78
This commit is contained in:
parent
92d0078a8f
commit
3468ea273b
|
@ -0,0 +1,176 @@
|
|||
{
|
||||
"configurations": [
|
||||
{
|
||||
"name": "Linux",
|
||||
"includePath": [
|
||||
//For linux amd64 and linux on arm64,some include path may different
|
||||
//Commet and uncomment these lines to compile on a specificed archtiecture
|
||||
//Arm64 linux libs
|
||||
/*
|
||||
"/usr/lib/aarch64-linux-gnu/dbus-1.0/include/**",
|
||||
"/usr/lib/aarch64-linux-gnu/glib-2.0/include/**",
|
||||
"/usr/lib/aarch64-linux-gnu/gtkmm-3.0/include/**",
|
||||
"/usr/lib/aarch64-linux-gnu/gdkmm-3.0/include/**",
|
||||
"/usr/lib/aarch64-linux-gnu/giomm-2.4/include/**",
|
||||
"/usr/lib/aarch64-linux-gnu/pangomm-1.4/include/**",
|
||||
"/usr/lib/aarch64-linux-gnu/glibmm-2.4/include/**",
|
||||
"/usr/lib/aarch64-linux-gnu/cairomm-1.0/include/**",
|
||||
"/usr/lib/aarch64-linux-gnu/sigc++-2.0/include/**",
|
||||
*/
|
||||
//amd64 linux libs(For ubuntu)
|
||||
/*
|
||||
"/usr/lib/x86_64-linux-gnu/dbus-1.0/include/**",
|
||||
"/usr/lib/x86_64-linux-gnu/glib-2.0/include/**",
|
||||
"/usr/lib/x86_64-linux-gnu/gtkmm-3.0/include/**",
|
||||
"/usr/lib/x86_64-linux-gnu/gdkmm-3.0/include/**",
|
||||
"/usr/lib/x86_64-linux-gnu/giomm-2.4/include/**",
|
||||
"/usr/lib/x86_64-linux-gnu/pangomm-1.4/include/**",
|
||||
"/usr/lib/x86_64-linux-gnu/glibmm-2.4/include/**",
|
||||
"/usr/lib/x86_64-linux-gnu/cairomm-1.0/include/**",
|
||||
"/usr/lib/x86_64-linux-gnu/sigc++-2.0/include/**",
|
||||
*/
|
||||
//For debian and ubuntu,kali
|
||||
/*
|
||||
"/usr/include/gtk-3.0/gtk/**",
|
||||
"/usr/include/uuid/**",
|
||||
*/
|
||||
//For manjaro(Arch linux)
|
||||
"/usr/lib/dbus-1.0/include/**",
|
||||
"/usr/lib/glib-2.0/include/**",
|
||||
"/usr/include/lzo/**",
|
||||
"/usr/include/cloudproviders/**",
|
||||
"${workspaceFolder}/**",
|
||||
"${workspaceFolder}/../**",
|
||||
"/usr/include/gtk-3.0/**",
|
||||
"/usr/include/at-spi2-atk/2.0/**",
|
||||
"/usr/include/at-spi-2.0/**",
|
||||
"/usr/include/dbus-1.0/**",
|
||||
"/usr/include/gio-unix-2.0/**",
|
||||
"/usr/include/cairo/**",
|
||||
"/usr/include/pango-1.0/**",
|
||||
"/usr/include/fribidi/**",
|
||||
"/usr/include/harfbuzz/**",
|
||||
"/usr/include/atk-1.0/**",
|
||||
"/usr/include/pixman-1/**",
|
||||
"/usr/include/freetype2/**",
|
||||
"/usr/include/libpng16/**",
|
||||
"/usr/include/gdk-pixbuf-2.0/**",
|
||||
"/usr/include/libmount/**",
|
||||
"/usr/include/blkid/**",
|
||||
"/usr/include/glib-2.0/**",
|
||||
//Gtkmm libs
|
||||
"/usr/include/gtkmm-3.0/**",
|
||||
"/usr/lib/gtkmm-3.0/include/**",
|
||||
"/usr/include/giomm-2.4/**",
|
||||
"/usr/lib/giomm-2.4/include/**",
|
||||
"/usr/include/glibmm-2.4/**",
|
||||
"/usr/lib/glibmm-2.4/include/**",
|
||||
"/usr/include/sigc++-2.0/**",
|
||||
"/usr/lib/sigc++-2.0/include/**",
|
||||
"/usr/include/cairomm-1.0/**",
|
||||
"/usr/lib/cairomm-1.0/include/**",
|
||||
"/usr/include/pangomm-1.4/**",
|
||||
"/usr/lib/pangomm-1.4/include/**",
|
||||
"/usr/include/atkmm-1.6/**",
|
||||
"/usr/lib/atkmm-1.6/include/**",
|
||||
"/usr/include/gtk-3.0/unix-print/**",
|
||||
"/usr/include/gdkmm-3.0/**",
|
||||
"/usr/lib/gdkmm-3.0/include/**"
|
||||
],
|
||||
"defines": [],
|
||||
"compilerPath": "/usr/bin/gcc",
|
||||
"cStandard": "gnu17",
|
||||
"cppStandard": "gnu++17",
|
||||
"intelliSenseMode": "gcc-x64",
|
||||
"compilerArgs": [
|
||||
"`pkg-config --cflags --libs gtkmm-3.0`"
|
||||
],
|
||||
"configurationProvider": "ms-vscode.cmake-tools"
|
||||
},
|
||||
{
|
||||
"name": "win32",
|
||||
"includePath": [
|
||||
"${workspaceFolder}/**",
|
||||
"${workspaceFolder}/src/**",
|
||||
//I assume the msys2 installed in D:/msys64
|
||||
"D:/msys64/mingw64/include/gtkmm-3.0/**",
|
||||
"D:/msys64/mingw64/lib/gtkmm-3.0/include/**",
|
||||
"D:/msys64/mingw64/include/giomm-2.4/**",
|
||||
"D:/msys64/mingw64/lib/giomm-2.4/include/**",
|
||||
"D:/msys64/mingw64/include/**",
|
||||
"D:/msys64/mingw64/include/glib-2.0/**",
|
||||
"D:/msys64/mingw64/lib/glib-2.0/include/**",
|
||||
"D:/msys64/mingw64/include/glibmm-2.4/**",
|
||||
"D:/msys64/mingw64/lib/glibmm-2.4/include/**",
|
||||
"D:/msys64/mingw64/include/sigc++-2.0/**",
|
||||
"D:/msys64/mingw64/lib/sigc++-2.0/include/**",
|
||||
"D:/msys64/mingw64/include/gtk-3.0/**",
|
||||
"D:/msys64/mingw64/include/pango-1.0/**",
|
||||
"D:/msys64/mingw64/include/harfbuzz/**",
|
||||
"D:/msys64/mingw64/include/freetype2/**",
|
||||
"D:/msys64/mingw64/include/libpng16/**",
|
||||
"D:/msys64/mingw64/include/fribidi/**",
|
||||
"D:/msys64/mingw64/include/cairo/**",
|
||||
"D:/msys64/mingw64/include/lzo/**",
|
||||
"D:/msys64/mingw64/include/pixman-1/**",
|
||||
"D:/msys64/mingw64/include/gdk-pixbuf-2.0",
|
||||
"D:/msys64/mingw64/include/atk-1.0",
|
||||
"D:/msys64/mingw64/include/cairomm-1.0/**",
|
||||
"D:/msys64/mingw64/lib/cairomm-1.0/include/**",
|
||||
"D:/msys64/mingw64/include/pangomm-1.4/**",
|
||||
"D:/msys64/mingw64/lib/pangomm-1.4/include/**"
|
||||
],
|
||||
"defines": [],
|
||||
"compilerPath": "D:/msys64/MinGW64/bin/gcc.exe",
|
||||
"cStandard": "c17",
|
||||
"cppStandard": "c++17",
|
||||
"intelliSenseMode": "windows-gcc-x64"
|
||||
},
|
||||
{
|
||||
"name": "Mac",
|
||||
"includePath": [
|
||||
"${workspaceFolder}/**",
|
||||
"/usr/local/Cellar/libffi/3.3_3/include/**",
|
||||
"/usr/local/Cellar/gtk+3/3.24.29/include/gtk-3.0/**",
|
||||
"/usr/local/Cellar/glib/2.68.2/include/gio-unix-2.0/**",
|
||||
"/usr/local/Cellar/cairo/1.16.0_5/include/cairo/**",
|
||||
"/usr/local/Cellar/libepoxy/1.5.7/include/**",
|
||||
"/usr/local/Cellar/pango/1.48.4/include/pango-1.0",
|
||||
"/usr/local/Cellar/harfbuzz/2.8.1/include/harfbuzz",
|
||||
"/usr/local/Cellar/pango/1.48.4/include/pango-1.0/**",
|
||||
"/usr/local/Cellar/fribidi/1.0.10/include/fribidi/**",
|
||||
"/usr/local/Cellar/harfbuzz/2.8.1/include/harfbuzz/**",
|
||||
"/usr/local/Cellar/graphite2/1.3.14/include/**",
|
||||
"/usr/local/Cellar/atk/2.36.0/include/atk-1.0/**",
|
||||
"/usr/local/Cellar/cairo/1.16.0_5/include/cairo/**",
|
||||
"/usr/local/Cellar/pixman/0.40.0/include/pixman-1/**",
|
||||
"/usr/local/Cellar/fontconfig/2.13.1/include/**",
|
||||
"/usr/local/opt/freetype/include/freetype2/**",
|
||||
"/usr/local/Cellar/libpng/1.6.37/include/libpng16/**",
|
||||
"/usr/local/Cellar/libxcb/1.14_1/include/**",
|
||||
"/usr/local/Cellar/libxrender/0.9.10/include/**",
|
||||
"/usr/local/Cellar/libxext/1.3.4/include/**",
|
||||
"/usr/local/Cellar/libx11/1.7.0/include/**",
|
||||
"/usr/local/Cellar/libxcb/1.14_1/include/**",
|
||||
"/usr/local/Cellar/libxau/1.0.9/include/**",
|
||||
"/usr/local/Cellar/libxdmcp/1.1.3/include/**",
|
||||
"/usr/local/Cellar/gdk-pixbuf/2.42.6/include/gdk-pixbuf-2.0/**",
|
||||
"/usr/local/Cellar/libpng/1.6.37/include/libpng16/**",
|
||||
"/usr/local/Cellar/libtiff/4.3.0/include/**",
|
||||
"/usr/local/Cellar/glib/2.68.2/include/**",
|
||||
"/usr/local/Cellar/glib/2.68.2/include/glib-2.0/**",
|
||||
"/usr/local/Cellar/glib/2.68.2/lib/glib-2.0/include/**",
|
||||
"/usr/local/opt/gettext/include/**",
|
||||
"/usr/local/Cellar/pcre/8.44/include/**",
|
||||
"/usr/local/Cellar/xorgproto/2021.4/include/**"
|
||||
],
|
||||
"defines": [],
|
||||
"macFrameworkPath": [],
|
||||
"compilerPath": "/usr/local/bin/gcc-11",
|
||||
"cStandard": "gnu17",
|
||||
"cppStandard": "gnu++17",
|
||||
"intelliSenseMode": "macos-gcc-x64"
|
||||
}
|
||||
],
|
||||
"version": 4
|
||||
}
|
|
@ -0,0 +1,5 @@
|
|||
{
|
||||
"C_Cpp.errorSquiggles": "Disabled",
|
||||
"cmake.configureOnOpen": false,
|
||||
"C_Cpp.dimInactiveRegions": false
|
||||
}
|
|
@ -0,0 +1,19 @@
|
|||
cmake_minimum_required(VERSION 3.0.0)
|
||||
project(gtk78 VERSION 0.1.0)
|
||||
|
||||
include(CTest)
|
||||
enable_testing()
|
||||
|
||||
add_executable(gtk78 src/main.cc src/MyWin.cc)
|
||||
|
||||
set(CPACK_PROJECT_NAME ${PROJECT_NAME})
|
||||
set(CPACK_PROJECT_VERSION ${PROJECT_VERSION})
|
||||
set(CMAKE_CXX_STANDARD 17)
|
||||
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_definitions (${GTKMM3_CFLAGS_OTHER})
|
||||
target_link_libraries (${PROJECT_NAME} ${GTKMM3_LIBRARIES})
|
|
@ -0,0 +1,80 @@
|
|||
#include "MyWin.hh"
|
||||
#include <iostream>
|
||||
|
||||
MyWin::MyWin()
|
||||
:m_vbox(Gtk::ORIENTATION_VERTICAL,0),
|
||||
btn_quit("Exit"),
|
||||
btn_add("Add Item"),
|
||||
btn_del("Delete Item")
|
||||
{
|
||||
//Initalize window
|
||||
set_icon_name("org.gtk.daleclack");
|
||||
set_default_size(400,300);
|
||||
set_title("TreeView Test1");
|
||||
|
||||
//Add widgets
|
||||
add(m_vbox);
|
||||
sw.set_policy(Gtk::POLICY_AUTOMATIC,Gtk::POLICY_AUTOMATIC);
|
||||
sw.add(m_treeview);
|
||||
m_vbox.pack_start(sw);
|
||||
|
||||
//Create the store
|
||||
ref_liststore=Gtk::ListStore::create(m_columns);
|
||||
m_treeview.set_model(ref_liststore);
|
||||
m_treeview.set_headers_visible(false);
|
||||
|
||||
//Append items
|
||||
row=*(ref_liststore->append());
|
||||
row[m_columns.m_col_text]="List 1";
|
||||
|
||||
row=*(ref_liststore->append());
|
||||
row[m_columns.m_col_text]="List 2";
|
||||
|
||||
row=*(ref_liststore->append());
|
||||
row[m_columns.m_col_text]="List 3";
|
||||
|
||||
m_treeview.append_column("List",m_columns.m_col_text);
|
||||
|
||||
//Add a Entry
|
||||
m_vbox.pack_start(m_entry,Gtk::PACK_SHRINK);
|
||||
|
||||
//Show item button
|
||||
btn_del.signal_clicked().connect(sigc::mem_fun(*this,&MyWin::btndel_clicked));
|
||||
m_buttonbox.pack_start(btn_del,Gtk::PACK_SHRINK);
|
||||
|
||||
//"Add Item" button
|
||||
btn_add.signal_clicked().connect(sigc::mem_fun(*this,&MyWin::btnadd_clicked));
|
||||
m_buttonbox.pack_start(btn_add,Gtk::PACK_SHRINK);
|
||||
//"Exit" button
|
||||
btn_quit.signal_clicked().connect(sigc::mem_fun(*this,&MyWin::on_btnquit_clicked));
|
||||
m_buttonbox.pack_end(btn_quit,Gtk::PACK_SHRINK);
|
||||
m_vbox.pack_end(m_buttonbox,Gtk::PACK_SHRINK);
|
||||
|
||||
//Show all widgets
|
||||
show_all_children();
|
||||
}
|
||||
|
||||
void MyWin::on_btnquit_clicked(){
|
||||
hide();
|
||||
}
|
||||
|
||||
void MyWin::btndel_clicked(){
|
||||
//Delete the iter that selected
|
||||
ref_selection=m_treeview.get_selection();
|
||||
Gtk::TreeModel::iterator iter=ref_selection->get_selected();
|
||||
if(iter){
|
||||
ref_liststore->erase(iter);
|
||||
}
|
||||
}
|
||||
|
||||
void MyWin::btnadd_clicked(){
|
||||
//Add an Item
|
||||
Glib::ustring str;
|
||||
str=m_entry.get_text();
|
||||
row=*(ref_liststore->append());
|
||||
row[m_columns.m_col_text]=str;
|
||||
}
|
||||
|
||||
MyWin::~MyWin(){
|
||||
|
||||
}
|
|
@ -0,0 +1,37 @@
|
|||
#pragma once
|
||||
|
||||
#include <gtkmm.h>
|
||||
|
||||
class MyWin : public Gtk::Window{
|
||||
public:
|
||||
MyWin();
|
||||
virtual ~MyWin();
|
||||
protected:
|
||||
//Signal Handlers
|
||||
void on_btnquit_clicked();
|
||||
void btndel_clicked();
|
||||
void btnadd_clicked();
|
||||
|
||||
//TreeModel Columns
|
||||
class ModelColumn : public Gtk::TreeModelColumnRecord{
|
||||
public:
|
||||
ModelColumn()
|
||||
{add(m_col_text);}
|
||||
Gtk::TreeModelColumn<Glib::ustring> m_col_text;
|
||||
};
|
||||
|
||||
ModelColumn m_columns;
|
||||
Gtk::TreeRow row;
|
||||
Glib::RefPtr<Gtk::ListStore> ref_liststore;
|
||||
Glib::RefPtr<Gtk::TreeSelection> ref_selection;
|
||||
|
||||
//Child widgets
|
||||
Gtk::Box m_vbox;
|
||||
Gtk::ButtonBox m_buttonbox;
|
||||
Gtk::ScrolledWindow sw;
|
||||
Gtk::TreeView m_treeview;
|
||||
Gtk::Button btn_del;
|
||||
Gtk::Button btn_quit;
|
||||
Gtk::Entry m_entry;
|
||||
Gtk::Button btn_add;
|
||||
};
|
|
@ -0,0 +1,7 @@
|
|||
#include "MyWin.hh"
|
||||
|
||||
int main(int argc,char **argv){
|
||||
auto app=Gtk::Application::create(argc,argv,"org.gtk.daleclack");
|
||||
MyWin window;
|
||||
return app->run(window);
|
||||
}
|
Loading…
Reference in New Issue