// File: widgets.idl #ifndef _WIDGETS_IDL_ #define _WIDGETS_IDL_ // For access to SVGElement // see http://www.w3.org/TR/SVG11/idl.html #include "svg.idl" #pragma prefix "framework.spark.sourceforge.net" #pragma javaPackage "net.sourceforge.spark.framework" module framework { typedef svg::SVGElement SVGElement; typedef svg::SVGEvent SVGEvent; interface Object; interface Atom; interface Command; interface CommandHolder; interface Container; interface Observer; interface SPARK; interface SPARKFactory; interface Subject; interface Widget; interface Command { void execute( ); }; interface CommandHolder { void addCommand( inout Command in_command ); void removeCommand( inout Command in_command ); }; interface Observer { void update( inout Subject in_subect ); }; interface Subject { void attach( inout Observer in_observer ); void detach( inout Observer in_observer ); }; interface Widget { readonly attribute string ID; readonly attribute string TYPE; void setState( in Object in_state ); Object getState(); }; interface Atom : Widget, Subject { }; interface Container : Widget, Subject, Observer { void addWidget( inout Widget in_widget ); void removeWidget( inout Widget in_widget ); }; interface SPARK { typedef sequence REGISTERED_WIDGETS; boolean requestMouseFocus( inout Widget in_widget ); boolean releaseMouseFocus( inout Widget in_widget ); void handleMouseEvent( inout SVGEvent evt ); void requestKeyboardFocus( inout Widget in_widget ); void releaseKeyboardFocus( inout Widget in_widget ); void handleKeyboardEvent( inout SVGEvent evt ); void registerWidgetType( in string in_type ); void deregisterWidgetType( in string in_type ); boolean isWidget( in string in_name ); void registerWidget( inout Widget in_widget ); void deregisterWidget( inout Widget in_widget ); void setFactory( inout SPARKFactory in_factory ); SPARKFactory getFactory( ); }; interface SPARKFactory { Widget createWidget( inout SVGElement in_node ); void createContents( inout SVGElement in_node, inout Container in_container ); }; }; #endif // _WIDGETS_IDL_