Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Browse files
Browse the repository at this point in the history
new gtknode:cmd
added "hello" example git-svn-id: https://gtknode.googlecode.com/svn/trunk@26 9999ab98-4a1b-0410-ba6a-d90168ca9a37
- Loading branch information
1 parent
12b280a
commit 76e05b9
Showing
8 changed files
with
165 additions
and
9 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
EXAMPLESDIR = $(ERLANG_INSTALL_LIB_DIR_gtknode)/examples | ||
erlsrcdir = $(EXAMPLESDIR)/hello | ||
erlsrc_DATA = hello.erl | ||
EXTRA_DIST = $(erlsrc_DATA) | ||
|
||
erlbeamdir = $(erlsrcdir) | ||
erlbeam_DATA = hello.beam | ||
CLEANFILES = $(erlbeam_DATA) | ||
|
||
all: $(erlbeam_DATA) | ||
|
||
SUFFIXES = .erl .beam | ||
.erl.beam: | ||
$(ERLC) $(ERLCFLAGS) $< |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,98 @@ | ||
#include <gtk/gtk.h> | ||
|
||
/* This is a callback function. The data arguments are ignored | ||
* in this example. More on callbacks below. */ | ||
static void hello( GtkWidget *widget, | ||
gpointer data ) | ||
{ | ||
g_print ("Hello World\n"); | ||
} | ||
|
||
static gboolean delete_event( GtkWidget *widget, | ||
GdkEvent *event, | ||
gpointer data ) | ||
{ | ||
/* If you return FALSE in the "delete_event" signal handler, | ||
* GTK will emit the "destroy" signal. Returning TRUE means | ||
* you don't want the window to be destroyed. | ||
* This is useful for popping up 'are you sure you want to quit?' | ||
* type dialogs. */ | ||
|
||
g_print ("delete event occurred\n"); | ||
|
||
/* Change TRUE to FALSE and the main window will be destroyed with | ||
* a "delete_event". */ | ||
|
||
return TRUE; | ||
} | ||
|
||
/* Another callback */ | ||
static void destroy( GtkWidget *widget, | ||
gpointer data ) | ||
{ | ||
gtk_main_quit (); | ||
} | ||
|
||
int main( int argc, | ||
char *argv[] ) | ||
{ | ||
/* GtkWidget is the storage type for widgets */ | ||
GtkWidget *window; | ||
GtkWidget *button; | ||
|
||
/* This is called in all GTK applications. Arguments are parsed | ||
* from the command line and are returned to the application. */ | ||
gtk_init (&argc, &argv); | ||
|
||
/* create a new window */ | ||
window = gtk_window_new (GTK_WINDOW_TOPLEVEL); | ||
|
||
/* When the window is given the "delete_event" signal (this is given | ||
* by the window manager, usually by the "close" option, or on the | ||
* titlebar), we ask it to call the delete_event () function | ||
* as defined above. The data passed to the callback | ||
* function is NULL and is ignored in the callback function. */ | ||
g_signal_connect (G_OBJECT (window), "delete_event", | ||
G_CALLBACK (delete_event), NULL); | ||
|
||
/* Here we connect the "destroy" event to a signal handler. | ||
* This event occurs when we call gtk_widget_destroy() on the window, | ||
* or if we return FALSE in the "delete_event" callback. */ | ||
g_signal_connect (G_OBJECT (window), "destroy", | ||
G_CALLBACK (destroy), NULL); | ||
|
||
/* Sets the border width of the window. */ | ||
gtk_container_set_border_width (GTK_CONTAINER (window), 10); | ||
|
||
/* Creates a new button with the label "Hello World". */ | ||
button = gtk_button_new_with_label ("Hello World"); | ||
|
||
/* When the button receives the "clicked" signal, it will call the | ||
* function hello() passing it NULL as its argument. The hello() | ||
* function is defined above. */ | ||
g_signal_connect (G_OBJECT (button), "clicked", | ||
G_CALLBACK (hello), NULL); | ||
|
||
/* This will cause the window to be destroyed by calling | ||
* gtk_widget_destroy(window) when "clicked". Again, the destroy | ||
* signal could come from here, or the window manager. */ | ||
g_signal_connect_swapped (G_OBJECT (button), "clicked", | ||
G_CALLBACK (gtk_widget_destroy), | ||
G_OBJECT (window)); | ||
|
||
/* This packs the button into the window (a gtk container). */ | ||
gtk_container_add (GTK_CONTAINER (window), button); | ||
|
||
/* The final step is to display this newly created widget. */ | ||
gtk_widget_show (button); | ||
|
||
/* and the window */ | ||
gtk_widget_show (window); | ||
|
||
/* All GTK applications must have a gtk_main(). Control ends here | ||
* and waits for an event to occur (like a key press or | ||
* mouse event). */ | ||
gtk_main (); | ||
|
||
return 0; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,32 @@ | ||
%%%------------------------------------------------------------------- | ||
%%% File : hello.erl | ||
%%% Author : Mats Cronqvist <locmacr@mwlx084> | ||
%%% Description : | ||
%%% | ||
%%% Created : 27 Nov 2006 by Mats Cronqvist <locmacr@mwlx084> | ||
%%%------------------------------------------------------------------- | ||
-module(hello). | ||
|
||
-export([go/0]). | ||
|
||
-define(G(C,A),gtknode:cmd(hello,C,A)). | ||
|
||
go() -> | ||
gtknode:start(hello), | ||
Win = ?G('Gtk_window_new',['GTK_WINDOW_TOPLEVEL']), | ||
But = ?G('Gtk_button_new_with_label',["butt"]), | ||
?G('Gtk_container_add',[Win,But]), | ||
?G('Gtk_widget_show',[Win]), | ||
?G('Gtk_widget_show',[But]), | ||
?G('GN_signal_connect',[But,clicked]), | ||
?G('GN_signal_connect',[Win,destroy]), | ||
loop(Win,But). | ||
|
||
loop(Win,But) -> | ||
receive | ||
{hello,{signal,{But,clicked}}} -> | ||
io:fwrite("~p~n",[clicked]), | ||
loop(Win,But); | ||
{hello,{signal,{Win,destroy}}} -> | ||
gtknode:stop(hello) | ||
end. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters