Beispiel #1
0
int main( int argc, char *argv[] )
{
	layout_t *lt, *lt2, *lt3, *lt4;
	bounds_t *b;
	object_t *rg, *btn, *fr;
	
	claro_base_init( );
	claro_graphics_init( );
	
	log_fd_set_level( CL_DEBUG, stderr );
	
	clog( CL_INFO, "%s running using Claro!", __FILE__ );
	
	b = new_bounds( 100, 100, 460, 230 );
	w = window_widget_create( 0, b, 0 );
	object_addhandler( w, "destroy", window_closed );
	window_set_title( w, "Radio button example" );
	
	lt = layout_create( w, "[][_<|set1|<|set3|<][][_<|set2|<|set4|<][]", *b, 10, 10 );
	
	/* create a frame */
	b = lt_bounds(lt,"set1");
	fr = frame_widget_create_with_label( w, b, 0, "Group 1" );
	lt2 = layout_create( fr, "[r1][r2][r3][_]", *b, 20, 20 );
	
	rg = radiogroup_create( fr, 0 );
	
	btn = radiobutton_widget_create( fr, rg, lt_bounds(lt2,"r1"), "Button 1", 0 );
	btn = radiobutton_widget_create( fr, rg, lt_bounds(lt2,"r2"), "Button 2", 0 );
	btn = radiobutton_widget_create( fr, rg, lt_bounds(lt2,"r3"), "Button 3", 0 );
	
	/* create a frame */
	b = lt_bounds(lt,"set2");
	fr = frame_widget_create_with_label( w, b, 0, "Group 2" );
	lt3 = layout_create( fr, "[r1][r2][r3][_]", *b, 20, 20 );
	
	rg = radiogroup_create( fr, 0 );
	
	btn = radiobutton_widget_create( fr, rg, lt_bounds(lt3,"r1"), "Button 1", 0 );
	btn = radiobutton_widget_create( fr, rg, lt_bounds(lt3,"r2"), "Button 2", 0 );
	btn = radiobutton_widget_create( fr, rg, lt_bounds(lt3,"r3"), "Button 3", 0 );
	
	/* create a frame */
	b = lt_bounds(lt,"set3");
	fr = frame_widget_create_with_label( w, b, 0, "Group 3" );
	lt4 = layout_create( fr, "[r1][r2][r3][_]", *b, 20, 20 );
	
	btn = checkbox_widget_create_with_label( fr, lt_bounds(lt4,"r1"), 0, "Button 1" );
	btn = checkbox_widget_create_with_label( fr, lt_bounds(lt4,"r2"), 0, "Button 2" );
	btn = checkbox_widget_create_with_label( fr, lt_bounds(lt4,"r3"), 0, "Button 3" );
	
	window_show( w );
	window_focus( w );
	
	block_heap_loginfo( );
	
	claro_loop( );
	
	return 0;
}
Beispiel #2
0
int main( int argc, char *argv[] )
{
	claro_base_init( );
	claro_graphics_init( );
	
	log_fd_set_level( CL_DEBUG, stderr );
	
	clog( CL_INFO, "%s running using Claro!", __FILE__ );
	
	w = window_widget_create( 0, new_bounds( 100, 100, 230, 230 ), cWidgetCustomDraw );
	window_set_title( w, "Hello, World!" );
	
	/*
	t = textbox_widget_create( w, new_bounds( 10, 10, 210, -1 ), 0 );
	widget_set_notify( WIDGET(t), cNotifyKey );
	textbox_set_text( t, "Yeehaw!" );
	*/
	b = button_widget_create( w, new_bounds( 0, 0, 230, -1 ), 0 );
	button_set_text( b, "Close me!" );
	
	object_addhandler( b, "pushed", push_my_button );
	
#ifndef NO_CAIRO
	c = canvas_widget_create( w, new_bounds( 15, 30, 200, 200 ), 0 );
    object_addhandler(OBJECT(c), "redraw", handle_redraw );

	/* add our main loop */
    object_addhandler( claro, "mainloop", handle_main );
#endif
	
	window_show( w );
	window_focus( w );
	
	block_heap_loginfo( );
	
	claro_loop( );
	
	return 0;
}
Beispiel #3
0
int main(int argc, char *argv[])
{
    image_t * img;
    object_t * menu;
    list_item_t * quit_item;

    claro_base_init();
    claro_graphics_init();

    log_fd_set_level(CL_DEBUG, stderr);

    clog(CL_INFO, "%s running using Claro!", __FILE__);

    w = window_widget_create(0, new_bounds(100, 100, 230, 230), 0);
    object_addhandler(w, "destroy", window_closed);
    window_set_title(w, "Status Icon");

    menu = menu_widget_create(w, 0);
    quit_item = menu_append_item(menu, NULL, stock_get_image("system-log-out"), "Quit");
    object_addhandler(OBJECT(quit_item), "pushed", window_closed);

    img = image_load(w, "icon.png");
    s = status_icon_create(w, img, 0);
    status_icon_set_tooltip(s, "Claro - Status Icon");
    status_icon_set_menu(s, menu);
    object_addhandler(s, "pushed", status_icon_pushed);

    window_show(w);
    window_focus(w);

    block_heap_loginfo();

    claro_loop();

    return 0;
}
Beispiel #4
0
int main(int argc, char *argv[])
{
	claro_base_init();
	claro_graphics_init();

    types = g_hash_table_new(g_str_hash, g_str_equal);
    	
	log_fd_set_level(CL_DEBUG, stderr);
	
	clog(CL_INFO, "%s running using Claro!", __FILE__);
	
	w = window_widget_create(0, new_bounds(100, 100, 230, 100), 0);
	object_addhandler(w, "destroy", window_closed);
	window_set_title(w, "Cursor Types");
	
	c = combo_widget_create(w, new_bounds(10, 10, 210, -1), 0);
	object_addhandler(c, "selected", combo_selected);
	
    list_item_t * item = COMBO_APPEND(c, cCursorNormal);
    combo_select_item(c, item);
    COMBO_APPEND(c, cCursorTextEdit);
    COMBO_APPEND(c, cCursorWait);
    COMBO_APPEND(c, cCursorPoint);
    
    
	window_show(w);
	window_focus(w);
	
	block_heap_loginfo();
	
	claro_loop();
    
    g_hash_table_destroy(types);    
	
	return 0;
}
Beispiel #5
0
int main( int argc, char *argv[] )
{
    object_t *w, *sw, *sw2, *cw;
    layout_t *lt;
    object_t *btn;
    bounds_t *b = NULL;
	
    claro_base_init( );
    claro_graphics_init( );
	
    log_fd_set_level( CL_DEBUG, stderr );
	
    clog( CL_INFO, "%s running using Claro!", __FILE__ );
    	
    b = new_bounds(50, 50, 300, 300);
    w = window_widget_create(NULL, b, 0);
    window_set_title(w, "Splitter Demo");
    object_addhandler(w, "destroy", window_closed);

    lt = layout_create(w, "[_splitter]", *b, 10, 10 );
    assert(lt != NULL && "failed to parse layout");
        
    sw = splitter_widget_create( w, lt_bounds(lt, "splitter"), cSplitterHorizontal );
    splitter_set_info( sw, cSplitterFirst, 0, 200 );
    splitter_set_info( sw, cSplitterSecond, 1, 0 );

    btn = button_widget_create( sw, NO_BOUNDS, 0 );
    lb = btn;
    button_set_text(btn, "Button Left");
	
    sw2 = splitter_widget_create( sw, NO_BOUNDS, cSplitterVertical );
	splitter_set_info( sw2, cSplitterFirst, 1, 0 );
    splitter_set_info( sw2, cSplitterSecond, 0, 200 );
	
    btn = button_widget_create( sw2, NO_BOUNDS, 0 );
    object_addhandler( btn, "pushed", show_button );
    button_set_text(btn, "Button Top-Right");
	
    cw = container_widget_create( sw2, NO_BOUNDS, 0 );
	
    lt = layout_create(cw,  "[_ul|(10)|ur][{10}][_ll|(10)|lr]", *b, 10, 10 );
	
    btn = button_widget_create( cw, lt_bounds( lt, "ul" ), 0 );
    object_addhandler( btn, "pushed", hide_button );
    button_set_text(btn, "B-U-L");
	
    btn = button_widget_create( cw, lt_bounds( lt, "ur" ), 0 );
    button_set_text(btn, "B-U-R");

    btn = button_widget_create( cw, lt_bounds( lt, "ll" ), 0 );
    button_set_text(btn, "B-L-L");
	
    btn = button_widget_create( cw, lt_bounds( lt, "lr" ), 0 );
    button_set_text(btn, "B-L-R");
	
    window_show( w );
    window_focus( w );
	
    block_heap_loginfo( );
	
    claro_loop( );
	
    return 0;
}
Beispiel #6
0
int main( int argc, char *argv[] )
{
	object_t *window = NULL;
	layout_t *lt = NULL, *lt2 = NULL, *lt3 = NULL;
	object_t *wgt = NULL, *frm = NULL;
	object_t *btn = NULL;

	bounds_t *b = NULL;
	
	claro_base_init( );
	claro_graphics_init( );

	log_fd_set_level( CL_DEBUG, stderr );	
	clog( CL_INFO, "%s running using Claro!", __FILE__ );	
	
	b = new_bounds( 100, 100, 800, 300 );
	window = window_widget_create(NULL, b, 0);
	window_set_title(window, "Claro Designer");
	object_addhandler(window, "destroy", window_closed);

	lt = layout_create(window, main_layout, *b, 10, 10);
	assert(lt != NULL && "Failed to parse the main layout.");

	b = lt_bounds(lt, "lelex");
	wgt = frame_widget_create_with_label(window, b, 0, "Lelex");
	lt2 = layout_create(wgt, "[_lelex]", *b, 10, 10);
	wgt = textarea_widget_create(wgt, lt_bounds(lt2, "lelex"), 0);
	store_put("lelex", wgt, sizeof(textbox_widget_t), TYPE_TEXTBOX);
	
	b = lt_bounds(lt, "options");
	frm = frame_widget_create_with_label(window, b, 0, "Options");
	lt3 = layout_create(frm, "[chk.toolbar][chk.statusbar][_][{25}run]", *b, 20, 20);
	wgt = checkbox_widget_create_with_label(frm, lt_bounds(lt3, "chk.toolbar"), 0, "Has Toolbar");
	object_addhandler(wgt, "changed", has_toolbar_handle);
	wgt = checkbox_widget_create_with_label(frm, lt_bounds(lt3, "chk.statusbar"), 0, "Has Statusbar");
	object_addhandler(wgt, "changed", has_statusbar_handle);
	wgt = button_widget_create( frm, lt_bounds(lt3, "run"), 0 );
	button_set_text( wgt, "Parse" );
	object_addhandler(wgt, "pushed", parse_pushed);
	
	list_item_t *item, *sitem;
	image_t *img = 0;
	
	img = image_load( window, "icon.png" );
	
	wgt = menubar_widget_create( window, 0 );
	item = menubar_append_item( wgt, 0, 0, "File" );
		sitem = menubar_append_item( wgt, item, img, "Test 1" );
			menubar_append_item( wgt, sitem, 0, "Sub 1" );
			menubar_append_item( wgt, sitem, 0, "Sub 2" );
			menubar_append_item( wgt, sitem, img, "Sub 3" );
		sitem = menubar_append_item( wgt, item, 0, "Test 2" );
			menubar_append_item( wgt, sitem, 0, "Sub 1" );
			menubar_append_item( wgt, sitem, img, "Sub 2" );
			menubar_append_item( wgt, sitem, 0, "Sub 3" );
	
	menubar_append_separator( wgt, item );
		
	item = menubar_append_item( wgt, item, stock_get_image("system-log-out", cStockMenu), "&Quit" );
	menubar_add_key_binding( wgt, item, "Q", cModifierCommand );
	object_addhandler( item, "pushed", window_closed );

	menubar_append_item( wgt, 0, 0, "Help" );
	
	// and fill in our component toolbar
	wgt = toolbar_widget_create( window, cToolbarShowBoth );
	
	btn = toolbar_append_icon( OBJECT(wgt), img, "Parse", "Parse the lelex" );
	object_addhandler( btn, "pushed", parse_pushed );
	toolbar_append_separator( OBJECT(wgt) );
	btn = toolbar_append_icon( OBJECT(wgt), img, "Insert", "*shrug*" );
	//toolbar_append_popup_item( OBJECT(wgt), btn, img, "I like", "*shrug*" );
	//toolbar_append_popup_item( OBJECT(wgt), btn, img, "Candy", "*shrug*" );
	/*btn = toolbar_add_button(wgt, "Parse", "Parse the lelex", "examples/designer/icon.png");
	object_addhandler(btn, "pushed", parse_pushed);
	toolbar_add_button(wgt, "BT", "Button", "examples/designer/icon.png");
	toolbar_add_button(wgt, "CV", "Canvas", "examples/designer/icon.png");
	toolbar_add_button(wgt, "PB", "Progress", "examples/designer/icon.png");
	toolbar_add_button(wgt, "LB", "Label", "examples/designer/icon.png");
	toolbar_add_button(wgt, "CT", "Container", "examples/designer/icon.png");
	toolbar_add_button(wgt, "TX", "Textbox", "examples/designer/icon.png");*/
	
	status = statusbar_widget_create(window, 0);
	statusbar_set_text(status, "Started up");
	
	// setup some initial last bounds for the first window
	b = new_bounds( 0, 200, 800, 600 );
	store_put_bounds_t("window.bounds", *b);
	
	window_show( window );
	window_focus( window );
	
	claro_loop( );
	
	return 0;
}
Beispiel #7
0
int main( int argc, char *argv[] )
{
    claro_hashtable_t * hash;
    char buf[256];
    int i;

	claro_base_init( );
	
	log_fd_set_level( CL_DEBUG, stderr );
	
	clog( CL_INFO, "%s running using Claro!", __FILE__ );
	
    // hashtable test 

    hash = claro_hashtable_str_create(FALSE, NULL);
    assert(hash != NULL);    

    claro_hashtable_insert(hash, "one", (void*)0x1, FALSE);
    claro_hashtable_insert(hash, "two", (void*)0x2, FALSE);
    claro_hashtable_insert(hash, "three", (void*)0x3, FALSE);

    assert(claro_hashtable_count(hash) == 3);
    
    assert(claro_hashtable_lookup(hash, "one") == (void*)0x1);
    assert(claro_hashtable_lookup(hash, "two") == (void*)0x2);
    assert(claro_hashtable_lookup(hash, "three") == (void*)0x3);

    assert(claro_hashtable_count(hash) == 3);

    assert(claro_hashtable_remove(hash, "one") == TRUE);
    assert(claro_hashtable_remove(hash, "two") == TRUE);
    assert(claro_hashtable_remove(hash, "three") == TRUE);
    
    assert(claro_hashtable_count(hash) == 0);    
    
    claro_hashtable_unref(hash);

    hash = claro_hashtable_str_create(TRUE, NULL);
    assert(hash != NULL);    

    for(i = 0; i < 100; i++)
    {
        sprintf(buf, "%d", i);
        claro_hashtable_insert(hash, sstrdup(buf), (void*)i, FALSE);
    }    

    for(i = 0; i < 100; i++)
    {
        sprintf(buf, "%d", i);
        assert(claro_hashtable_lookup(hash, buf) == (void*)i);
    }

    assert(claro_hashtable_count(hash) == 100);
    claro_hashtable_unref(hash);

	object_t *foo = foo_create( NULL );
	
	//block_heap_loginfo( );
	object_destroy( foo );
	
	claro_loop( );
	
	return 0;
}