Sfoglia il codice sorgente

More methods for Fl_Menu_Item.

mingodad 13 anni fa
parent
commit
9d55a1ff34
2 ha cambiato i file con 51 aggiunte e 0 eliminazioni
  1. 16 0
      SquiLu-ext/sq_fltk.cpp
  2. 35 0
      SquiLu-ourbiz/pedidos2.nut

+ 16 - 0
SquiLu-ext/sq_fltk.cpp

@@ -1055,9 +1055,25 @@ static SQRESULT _Fl_Menu_Item_pulldown(HSQUIRRELVM v)
     return 1;
     return 1;
 }
 }
 
 
+static SQRESULT _Fl_Menu_Item_activate(HSQUIRRELVM v)
+{
+    SETUP_FL_MENU_ITEM(v);
+    self->activate();
+    return 0;
+}
+
+static SQRESULT _Fl_Menu_Item_deactivate(HSQUIRRELVM v)
+{
+    SETUP_FL_MENU_ITEM(v);
+    self->deactivate();
+    return 0;
+}
+
 #define _DECL_FUNC(name,nparams,pmask,isStatic) {_SC(#name),_Fl_Menu_Item_##name,nparams,pmask,isStatic}
 #define _DECL_FUNC(name,nparams,pmask,isStatic) {_SC(#name),_Fl_Menu_Item_##name,nparams,pmask,isStatic}
 static SQRegFunction fl_menu_item_obj_funcs[]={
 static SQRegFunction fl_menu_item_obj_funcs[]={
 	_DECL_FUNC(pulldown,-5, _SC("xiiii x|o x|o x|o i"), SQFalse),
 	_DECL_FUNC(pulldown,-5, _SC("xiiii x|o x|o x|o i"), SQFalse),
+	_DECL_FUNC(activate,1, _SC("x"), SQFalse),
+	_DECL_FUNC(deactivate,1, _SC("x"), SQFalse),
 	{0,0}
 	{0,0}
 };
 };
 #undef _DECL_FUNC
 #undef _DECL_FUNC

+ 35 - 0
SquiLu-ourbiz/pedidos2.nut

@@ -294,11 +294,20 @@ class Fl_Multiline_Input extends Fl_Input {
 	}
 	}
 }
 }
 
 
+local function _do_delayed_focus (widget){
+	widget->take_focus();
+}
+function delayed_focus (widget){
+	Fl.add_timeout(0.05, _do_delayed_focus, widget);
+}
+
 dofile("pedidos2-gui.nut");
 dofile("pedidos2-gui.nut");
 
 
 class Pedidos2 extends PedidosWindow {
 class Pedidos2 extends PedidosWindow {
   
   
 	// Declaration of class members
 	// Declaration of class members
+	menu_bar_deactivated_menus = null;
+	pedidos_edit_record = null;
   
   
 	constructor(){
 	constructor(){
 		base.constructor();
 		base.constructor();
@@ -325,6 +334,22 @@ class Pedidos2 extends PedidosWindow {
 		
 		
 		return base.handle(event);
 		return base.handle(event);
 	}
 	}
+	
+	function reset_menus_desactivados(){
+		if (menu_bar_deactivated_menus){
+			local mb = menu_bar;
+			foreach(k,v in menu_bar_deactivated_menus) mb.menu_at(v).deactivate();
+		}
+	}
+	
+	function reset_menus_desactivados_activando(list){
+		if (menu_bar){
+			local mb = menu_bar;
+			reset_menus_desactivados();
+			foreach(k,v in list) mb.menu_at(v).activate();
+		}
+	}
+	
 	function menu_bar_navigate(){
 	function menu_bar_navigate(){
 		local mb = menu_bar;
 		local mb = menu_bar;
 		local v = mb.menu().pulldown(mb.x(), mb.y(), mb.w(), mb.h(), mb.menu_at(0), mb, null, 1);
 		local v = mb.menu().pulldown(mb.x(), mb.y(), mb.w(), mb.h(), mb.menu_at(0), mb, null, 1);
@@ -334,6 +359,16 @@ class Pedidos2 extends PedidosWindow {
 	}
 	}
 	function mostrar_ventana_pedido(){
 	function mostrar_ventana_pedido(){
 		tabs.value(tab_pedido);
 		tabs.value(tab_pedido);
+		if (pedidos_edit_record && pedidos_edit_record.id)
+			delayed_focus(pedido_lineas_codigo);
+		else
+			delayed_focus(pedidos_cliente_codigo_r);
+
+		reset_menus_desactivados_activando([
+				menu_pedido_guardar,
+				menu_pedido_borrar,
+				menu_pedido_imprimir,
+			]);
 	}
 	}
 	function mostrar_ventana_pedidos(){
 	function mostrar_ventana_pedidos(){
 		tabs.value(tab_pedidos_lista);
 		tabs.value(tab_pedidos_lista);