unit OutputWindow;
interface
procedure CreateWindow();
implementation
uses glib2, gdk2pixbuf, gdk2, gtk2;
procedure BackgroundInit(var Pixbuf : PGdkPixbuf);
var
PathToBackG : array [0..100] of char;
error : PGError;
begin
PathToBackG := '/home/yarik/Desktop/Zhuzhculator/GUIZhuzh/Testing_Background.bmp';
error := nil;
Pixbuf := gdk_pixbuf_new_from_file(@PathToBackG , @error);
// Pixbuf := gdk_pixbuf_scale_simple(Pixbuf, 344, 531, GDK_INTERP_HYPER);
if error <> nil then
begin
if error^.domain = GDK_PIXBUF_ERROR then
begin
g_print('Pixbuf Related Error'#10);
halt(1)
end;
if error^.domain = G_FILE_ERROR then
begin
g_print('File Error: Check file permissions and state'#10);
halt(1)
end;
end;
end;
procedure SetStyle(var Style : PGtkStyle; Pixbuf : PGdkPixbuf);
var
Background : PGdkPixmap;
MaskReturn : PGdkBitmap;
begin
MaskReturn := nil;
gdk_pixbuf_render_pixmap_and_mask (Pixbuf, Background, MaskReturn, 0);
Style := gtk_style_new();
Style^.bg_pixmap[0] := Background;
end;
procedure destroy (widget : pGtkWidget ; data : pgpointer); cdecl ;
begin
gtk_main_quit()
end;
procedure SetGeometry(var Geometry : TGdkGeometry);
begin
Geometry.min_width := 321;
Geometry.min_height := 480;
Geometry.min_aspect := 321 / 480;
Geometry.max_aspect := 321 / 480;
end;
procedure CreateWindow();
var
Window : PGtkWidget;
Style : PGtkStyle;
Pixbuf : PGdkPixbuf;
Geometry : TGdkGeometry;
begin
gtk_init(@argc, @argv);
Window := gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_window_set_title(GTK_WINDOW(Window), 'Zhuzhculator');
SetGeometry(Geometry);
gtk_window_set_geometry_hints(GTK_WINDOW(Window), Window,
@Geometry, GDK_HINT_ASPECT
or GDK_HINT_MIN_SIZE);
gtk_window_set_gravity(GTK_WINDOW(Window), GDK_GRAVITY_CENTER);
// gtk_widget_set_size_request(Window, 321, 480);
gtk_window_set_default_size(GTK_WINDOW(Window), 321, 480);
BackgroundInit(Pixbuf);
SetStyle(Style, Pixbuf);
gtk_widget_set_style(Window, GTK_STYLE(Style));
gtk_widget_show(Window);
gtk_signal_connect(PGtkObject(Window), 'destroy',
GTK_SIGNAL_FUNC (@destroy), NULL);
gtk_main();
end;
end.