Add gtk98
This commit is contained in:
parent
d9af1cf5ff
commit
2318b4cfba
|
@ -0,0 +1,30 @@
|
|||
#A Simple Project Test
|
||||
project('gtk98', 'cpp',
|
||||
default_options : ['c_std=c17', 'cpp_std=c++17'])
|
||||
|
||||
#Initalize variants
|
||||
# gnome=import('gnome')
|
||||
|
||||
#Compile Resource
|
||||
# gresources = gnome.compile_resources(
|
||||
# 'resources', 'res/gtk91.resource.xml',
|
||||
# source_dir: 'res',
|
||||
# c_name: 'resources'
|
||||
# )
|
||||
|
||||
#The Gtkmm Library as a dependency
|
||||
gtkdep = dependency('gtkmm-3.0')
|
||||
|
||||
#Additional include dirs
|
||||
dir_include = include_directories('..')
|
||||
|
||||
#Use Different Build Opinions in windows and Linux
|
||||
if host_machine.system() == 'windows'
|
||||
win=import('windows')
|
||||
icon_res=win.compile_resources('../icon.rc')
|
||||
executable('gtk98', icon_res, 'src/main.cc', 'src/MyArea.cc', dependencies : gtkdep,
|
||||
win_subsystem : 'windows', include_directories : dir_include)
|
||||
else
|
||||
executable('gtk98', 'src/main.cc', 'src/MyArea.cc', dependencies : gtkdep,
|
||||
include_directories : dir_include)
|
||||
endif
|
|
@ -0,0 +1,31 @@
|
|||
#include "MyArea.hh"
|
||||
|
||||
bool MyArea::on_draw(const Cairo::RefPtr<Cairo::Context> &cr)
|
||||
{
|
||||
Gtk::Allocation allocation = get_allocation();
|
||||
const int width = allocation.get_width();
|
||||
const int height = allocation.get_height();
|
||||
|
||||
double x0 = 0.1, y0 = 0.5, // start point
|
||||
x1 = 0.4, y1 = 0.9, // control point #1
|
||||
x2 = 0.6, y2 = 0.1, // control point #2
|
||||
x3 = 0.9, y3 = 0.5; // end point
|
||||
|
||||
// scale to unit square (0 to 1 width and height)
|
||||
cr->scale(width, height);
|
||||
|
||||
cr->set_line_width(0.05);
|
||||
// draw curve
|
||||
cr->move_to(x0, y0);
|
||||
cr->curve_to(x1, y1, x2, y2, x3, y3);
|
||||
cr->stroke();
|
||||
// show control points
|
||||
cr->set_source_rgba(1, 0.2, 0.2, 0.6);
|
||||
cr->move_to(x0, y0);
|
||||
cr->line_to(x1, y1);
|
||||
cr->move_to(x2, y2);
|
||||
cr->line_to(x3, y3);
|
||||
cr->stroke();
|
||||
|
||||
return true;
|
||||
}
|
|
@ -0,0 +1,9 @@
|
|||
#pragma once
|
||||
|
||||
#include <gtkmm/drawingarea.h>
|
||||
|
||||
class MyArea : public Gtk::DrawingArea{
|
||||
protected:
|
||||
//Override default signal handler:
|
||||
bool on_draw(const Cairo::RefPtr<Cairo::Context>& cr) override;
|
||||
};
|
|
@ -0,0 +1,14 @@
|
|||
#include <gtkmm/application.h>
|
||||
#include <gtkmm/window.h>
|
||||
#include "MyArea.hh"
|
||||
|
||||
int main(int argc,char **argv){
|
||||
auto app=Gtk::Application::create(argc,argv,"org.gtk.daleclack");
|
||||
//Create a window
|
||||
Gtk::Window window;
|
||||
MyArea area1;
|
||||
window.add(area1);
|
||||
window.show_all();
|
||||
|
||||
return app->run(window);
|
||||
}
|
Loading…
Reference in New Issue