fltkhs-0.5.1.2: scripts/skeletons.el
(define-skeleton widget-subclass
""
nil
'(setq v1 (skeleton-read "class:"))
> "class Fl_Derived" v1 " : public Fl_" v1 " {"
?\n
> " fl_Widget_Virtual_Funcs* overriddenFuncs;"
?\n
> " void* other_data;"
?\n
> "public:"
?\n
> " virtual void draw();"
?\n
> " void draw_super();"
?\n
> " virtual int handle(int event);"
?\n
> " int handle_super(int event);"
?\n
> " virtual void resize(int x, int y, int w, int h);"
?\n
> " void resize_super(int x, int y, int w, int h);"
?\n
> " virtual void show();"
?\n
> " void show_super();"
?\n
> " virtual void hide();"
?\n
> " void hide_super();"
?\n
> " Fl_Derived" v1 "(int X, int Y, int W, int H, const char *l, fl_Widget_Virtual_Funcs* funcs);"
?\n
> " Fl_Derived" v1 "(int X, int Y, int W, int H, fl_Widget_Virtual_Funcs* funcs);"
?\n
> " ~Fl_Derived" v1 "();"
?\n
> "};"
?\n
)
(define-skeleton widget-methods
""
nil
'(setq v1 (skeleton-read "class:"))
> "Fl_Derived" v1 "::Fl_Derived" v1 "(int X, int Y, int W, int H, const char *l, fl_Widget_Virtual_Funcs* funcs) : Fl_" v1 "(X,Y,W,H,l){" ?\n
> " overriddenFuncs = funcs;" ?\n
> " other_data = (void*)0;" ?\n
> "}" ?\n
> "Fl_Derived" v1 "::Fl_Derived" v1 "(int X, int Y, int W, int H, fl_Widget_Virtual_Funcs* funcs):Fl_" v1 "(X,Y,W,H){" ?\n
> " overriddenFuncs = funcs;" ?\n
> " other_data = (void*)0;" ?\n
> "}" ?\n
> "Fl_Derived" v1 "::~Fl_Derived" v1 "(){" ?\n
> " free(overriddenFuncs);" ?\n
> "}" ?\n
> "void Fl_Derived" v1 "::draw(){" ?\n
> " if (this->overriddenFuncs->draw != NULL) {" ?\n
> " this->overriddenFuncs->draw((fl_" v1 ") this);" ?\n
> " }" ?\n
> " else {" ?\n
> " Fl_" v1 "::draw();" ?\n
> " }" ?\n
> "}" ?\n
> "" ?\n
> "void Fl_Derived" v1 "::draw_super(){" ?\n
> " Fl_" v1 "::draw();" ?\n
> "}" ?\n
> "" ?\n
> "int Fl_Derived" v1 "::handle(int event){" ?\n
> " int i;" ?\n
> " if (this->overriddenFuncs->handle != NULL) {" ?\n
> " i = this->overriddenFuncs->handle((fl_" v1 ") this,event);" ?\n
> " }" ?\n
> " else {" ?\n
> " i = Fl_" v1 "::handle(event);" ?\n
> " }" ?\n
> " return i;" ?\n
> "}" ?\n
> "int Fl_Derived" v1 "::handle_super(int event){" ?\n
> " return Fl_" v1 "::handle(event);" ?\n
> "}" ?\n
> "" ?\n
> "void Fl_Derived" v1 "::resize(int x, int y, int w, int h){" ?\n
> " if (this->overriddenFuncs->resize != NULL) {" ?\n
> " this->overriddenFuncs->resize((fl_" v1 ") this,x,y,w,h);" ?\n
> " }" ?\n
> " else {" ?\n
> " Fl_" v1 "::resize(x,y,w,h);" ?\n
> " }" ?\n
> "}" ?\n
> "" ?\n
> "void Fl_Derived" v1 "::resize_super(int x, int y, int w, int h){" ?\n
> " Fl_" v1 "::resize(x,y,w,h);" ?\n
> "}" ?\n
> "void Fl_Derived" v1 "::show(){" ?\n
> " if (this->overriddenFuncs->show != NULL) {" ?\n
> " this->overriddenFuncs->show((fl_" v1 ") this);" ?\n
> " }" ?\n
> " else {" ?\n
> " Fl_" v1 "::show();" ?\n
> " }" ?\n
> "}" ?\n
> "void Fl_Derived" v1 "::show_super(){" ?\n
> " Fl_" v1 "::show();" ?\n
> "}" ?\n
> "" ?\n
> "void Fl_Derived" v1 "::hide(){" ?\n
> " if (this->overriddenFuncs->hide != NULL) {" ?\n
> " this->overriddenFuncs->hide((fl_" v1 ") this);" ?\n
> " }" ?\n
> " else {" ?\n
> " Fl_" v1 "::hide();" ?\n
> " }" ?\n
> "}" ?\n
> "void Fl_Derived" v1 "::hide_super(){" ?\n
> " Fl_" v1 "::hide();" ?\n
> "}" ?\n
> "" ?\n
)
(define-skeleton group-subclass
""
nil
'(setq v1 (skeleton-read "class:"))
> "class Fl_Derived" v1 " : public Fl_" v1 " {"
?\n
> " fl_Widget_Virtual_Funcs* overriddenFuncs;"
?\n
> " void* other_data;"
?\n
> "public:"
?\n
> " virtual void draw();"
?\n
> " void draw_super();"
?\n
> " virtual int handle(int event);"
?\n
> " int handle_super(int event);"
?\n
> " virtual void resize(int x, int y, int w, int h);"
?\n
> " void resize_super(int x, int y, int w, int h);"
?\n
> " virtual void show();"
?\n
> " void show_super();"
?\n
> " virtual void hide();"
?\n
> " void hide_super();"
?\n
> " void draw_child(Fl_Widget* widget);"
?\n
> " void draw_children();"
?\n
> " void draw_outside_label(Fl_Widget* widget);"
?\n
> " void update_child(Fl_Widget* widget);"
?\n
> " Fl_Derived" v1 "(int X, int Y, int W, int H, const char *l, fl_Widget_Virtual_Funcs* funcs);"
?\n
> " Fl_Derived" v1 "(int X, int Y, int W, int H, fl_Widget_Virtual_Funcs* funcs);"
?\n
> " ~Fl_Derived" v1 "();"
?\n
> "};"
?\n
)
(define-skeleton group-methods
""
nil
'(setq v1 (skeleton-read "class:"))
> "Fl_Derived" v1 "::Fl_Derived" v1 "(int X, int Y, int W, int H, const char *l, fl_Widget_Virtual_Funcs* funcs) : Fl_" v1 "(X,Y,W,H,l){" ?\n
> " overriddenFuncs = funcs;" ?\n
> " other_data = (void*)0;" ?\n
> "}" ?\n
> "Fl_Derived" v1 "::Fl_Derived" v1 "(int X, int Y, int W, int H, fl_Widget_Virtual_Funcs* funcs):Fl_" v1 "(X,Y,W,H){" ?\n
> " overriddenFuncs = funcs;" ?\n
> " other_data = (void*)0;" ?\n
> "}" ?\n
> "Fl_Derived" v1 "::~Fl_Derived" v1 "(){" ?\n
> " free(overriddenFuncs);" ?\n
> "}" ?\n
> "void Fl_Derived" v1 "::draw(){" ?\n
> " if (this->overriddenFuncs->draw != NULL) {" ?\n
> " this->overriddenFuncs->draw((fl_" v1 ") this);" ?\n
> " }" ?\n
> " else {" ?\n
> " Fl_" v1 "::draw();" ?\n
> " }" ?\n
> "}" ?\n
> "" ?\n
> "void Fl_Derived" v1 "::draw_super(){" ?\n
> " Fl_" v1 "::draw();" ?\n
> "}" ?\n
> "" ?\n
> "int Fl_Derived" v1 "::handle(int event){" ?\n
> " int i;" ?\n
> " if (this->overriddenFuncs->handle != NULL) {" ?\n
> " i = this->overriddenFuncs->handle((fl_" v1 ") this,event);" ?\n
> " }" ?\n
> " else {" ?\n
> " i = Fl_" v1 "::handle(event);" ?\n
> " }" ?\n
> " return i;" ?\n
> "}" ?\n
> "int Fl_Derived" v1 "::handle_super(int event){" ?\n
> " return Fl_" v1 "::handle(event);" ?\n
> "}" ?\n
> "" ?\n
> "void Fl_Derived" v1 "::resize(int x, int y, int w, int h){" ?\n
> " if (this->overriddenFuncs->resize != NULL) {" ?\n
> " this->overriddenFuncs->resize((fl_" v1 ") this,x,y,w,h);" ?\n
> " }" ?\n
> " else {" ?\n
> " Fl_" v1 "::resize(x,y,w,h);" ?\n
> " }" ?\n
> "}" ?\n
> "" ?\n
> "void Fl_Derived" v1 "::resize_super(int x, int y, int w, int h){" ?\n
> " Fl_" v1 "::resize(x,y,w,h);" ?\n
> "}" ?\n
> "void Fl_Derived" v1 "::show(){" ?\n
> " if (this->overriddenFuncs->show != NULL) {" ?\n
> " this->overriddenFuncs->show((fl_" v1 ") this);" ?\n
> " }" ?\n
> " else {" ?\n
> " Fl_" v1 "::show();" ?\n
> " }" ?\n
> "}" ?\n
> "void Fl_Derived" v1 "::show_super(){" ?\n
> " Fl_" v1 "::show();" ?\n
> "}" ?\n
> "" ?\n
> "void Fl_Derived" v1 "::hide(){" ?\n
> " if (this->overriddenFuncs->hide != NULL) {" ?\n
> " this->overriddenFuncs->hide((fl_" v1 ") this);" ?\n
> " }" ?\n
> " else {" ?\n
> " Fl_" v1 "::hide();" ?\n
> " }" ?\n
> "}" ?\n
> "void Fl_Derived" v1 "::hide_super(){" ?\n
> " Fl_" v1 "::hide();" ?\n
> "}" ?\n
> "" ?\n
> "void Fl_Derived" v1 "::draw_child(Fl_Widget* widget){" ?\n
> " Fl_" v1 "::draw_child(*widget);" ?\n
> "}" ?\n
> "void Fl_Derived" v1 "::draw_children(){" ?\n
> " Fl_" v1 "::draw_children();" ?\n
> "}" ?\n
> "void Fl_Derived" v1 "::draw_outside_label(Fl_Widget* widget){" ?\n
> " Fl_" v1 "::draw_outside_label(*widget);" ?\n
> "}" ?\n
> "void Fl_Derived" v1 "::update_child(Fl_Widget* widget){" ?\n
> " Fl_" v1 "::update_child(*widget);" ?\n
> "}" ?\n
)
(define-skeleton new-subclass
""
nil
'(setq v1 (skeleton-read "class:"))
> " FL_EXPORT_C(fl_" v1 ", Fl_" v1 "_New)(int X, int Y, int W, int H){" ?\n
> " fl_Widget_Virtual_Funcs* fs = Fl_Widget_default_virtual_funcs();" ?\n
> " Fl_Derived" v1 "* w = new Fl_Derived" v1 "(X,Y,W,H,fs);" ?\n
> " return (fl_" v1 ")w;" ?\n
> " }" ?\n
> " FL_EXPORT_C(fl_" v1 ", Fl_" v1 "_New_WithLabel)(int X, int Y, int W, int H, const char* label){" ?\n
> " fl_Widget_Virtual_Funcs* fs = Fl_Widget_default_virtual_funcs();" ?\n
> " Fl_Derived" v1 "* w = new Fl_Derived" v1 "(X,Y,W,H,label,fs);" ?\n
> " return (fl_" v1 ")w;" ?\n
> " }" ?\n
> " FL_EXPORT_C(fl_" v1 ", Fl_Overridden" v1 "_New)(int X, int Y, int W, int H,fl_Widget_Virtual_Funcs* fs){" ?\n
> " Fl_Derived" v1 "* w = new Fl_Derived" v1 "(X,Y,W,H,fs);" ?\n
> " return (fl_" v1 ")w;" ?\n
> " }" ?\n
> " FL_EXPORT_C(fl_" v1 ", Fl_Overridden" v1 "_New_WithLabel)(int X, int Y, int W, int H, const char* label, fl_Widget_Virtual_Funcs* fs){" ?\n
> " Fl_Derived" v1 "* w = new Fl_Derived" v1 "(X,Y,W,H,label,fs);" ?\n
> " return (fl_" v1 ")w;" ?\n
> " }" ?\n
)
(define-skeleton widget-methods-c
""
nil
'(setq v1 (skeleton-read "class:"))
> (format "FL_EXPORT_C(void, Fl_%s_draw)(fl_%s o){
(static_cast<Fl_Derived%s*>(o))->draw();
}" v1 v1 v1)
?\n
> (format "FL_EXPORT_C(void, Fl_%s_draw_super)(fl_%s o){
(static_cast<Fl_Derived%s*>(o))->draw_super();
}" v1 v1 v1)
?\n
> (format "FL_EXPORT_C(int, Fl_%s_handle)(fl_%s o, int event){
return (static_cast<Fl_Derived%s*>(o))->handle(event);
}" v1 v1 v1)
?\n
> (format "FL_EXPORT_C(int, Fl_%s_handle_super)(fl_%s o, int event){
return (static_cast<Fl_Derived%s*>(o))->handle_super(event);
}" v1 v1 v1)
?\n
> (format "FL_EXPORT_C(void, Fl_%s_resize)(fl_%s o, int x, int y, int w, int h){
(static_cast<Fl_Derived%s*>(o))->resize(x,y,w,h);
}" v1 v1 v1)
?\n
> (format "FL_EXPORT_C(void, Fl_%s_resize_super)(fl_%s o, int x, int y, int w, int h){
(static_cast<Fl_Derived%s*>(o))->resize_super(x,y,w,h);
}" v1 v1 v1)
?\n
> (format "FL_EXPORT_C(void, Fl_%s_show)(fl_%s o){
(static_cast<Fl_Derived%s*>(o))->show();
}" v1 v1 v1)
?\n
> (format "FL_EXPORT_C(void, Fl_%s_show_super)(fl_%s o){
(static_cast<Fl_Derived%s*>(o))->show_super();
}" v1 v1 v1)
?\n
> (format "FL_EXPORT_C(void, Fl_%s_hide)(fl_%s o){
(static_cast<Fl_Derived%s*>(o))->hide();
}" v1 v1 v1)
?\n
> (format "FL_EXPORT_C(void, Fl_%s_hide_super)(fl_%s o){
(static_cast<Fl_Derived%s*>(o))->hide_super();
}" v1 v1 v1)
?\n
)
(define-skeleton widget-methods-c-sigs
""
nil
'(setq v1 (skeleton-read "class:"))
> (format "FL_EXPORT_C(fl_%s, Fl_Overridden%s_New)(int X, int Y, int W, int H,fl_Widget_Virtual_Funcs* fs);" v1 v1)
?\n
> (format "FL_EXPORT_C(fl_%s, Fl_Overridden%s_New_WithLabel)(int X, int Y, int W, int H, const char* label, fl_Widget_Virtual_Funcs* fs);" v1 v1)
?\n
> (format "FL_EXPORT_C(void, Fl_%s_draw)(fl_%s o);" v1 v1)
?\n
> (format "FL_EXPORT_C(void, Fl_%s_draw_super)(fl_%s o);" v1 v1)
?\n
> (format "FL_EXPORT_C(int, Fl_%s_handle)(fl_%s o, int event);" v1 v1)
?\n
> (format "FL_EXPORT_C(int, Fl_%s_handle_super)(fl_%s o, int event);" v1 v1)
?\n
> (format "FL_EXPORT_C(void, Fl_%s_resize)(fl_%s o, int x, int y, int w, int h);" v1 v1)
?\n
> (format "FL_EXPORT_C(void, Fl_%s_resize_super)(fl_%s o, int x, int y, int w, int h);" v1 v1)
?\n
> (format "FL_EXPORT_C(void, Fl_%s_show)(fl_%s o);" v1 v1)
?\n
> (format "FL_EXPORT_C(void, Fl_%s_show_super)(fl_%s o);" v1 v1)
?\n
> (format "FL_EXPORT_C(void, Fl_%s_hide)(fl_%s o);" v1 v1)
?\n
> (format "FL_EXPORT_C(void, Fl_%s_hide_super)(fl_%s o);" v1 v1)
?\n
)
(define-skeleton haskell-custom
""
nil
'(setq v1 (skeleton-read "class:"))
> (format "{# fun Fl_Overridden%s_New_WithLabel as overriddenWidgetNewWithLabel' { `Int',`Int',`Int',`Int', unsafeToCString `T.Text', id `Ptr ()'} -> `Ptr ()' id #}" (capitalize v1))
?\n
> (format "{# fun Fl_Overridden%s_New as overriddenWidgetNew' { `Int',`Int',`Int',`Int', id `Ptr ()'} -> `Ptr ()' id #}" (capitalize v1))
?\n
> (format "%sCustom ::
Rectangle -- ^ The bounds of this %s
-> Maybe T.Text -- ^ The %s label
-> Maybe (Ref %s -> IO ()) -- ^ Optional custom drawing function
-> Maybe (CustomWidgetFuncs %s) -- ^ Optional custom widget functions
-> IO (Ref %s)
%sCustom rectangle l' draw' funcs' =
widgetMaker
rectangle
l'
draw'
funcs'
overriddenWidgetNew'
overriddenWidgetNewWithLabel'
" (s-lower-camel-case v1) (s-upper-camel-case v1) (s-upper-camel-case v1) (s-upper-camel-case v1) (s-upper-camel-case v1) (s-upper-camel-case v1) (s-lower-camel-case v1))
?\n
)
(defun custom-instances-list (class)
(let (
(draw (format "{# fun Fl_%s_draw as draw'' { id `Ptr ()' } -> `()' #}
instance (impl ~ ( IO ())) => Op (Draw ()) %s orig impl where
runOp _ _ %s = withRef %s $ \\%sPtr -> draw'' %sPtr" class (s-upper-camel-case class) (s-lower-camel-case class) (s-lower-camel-case class) (s-lower-camel-case class) (s-lower-camel-case class)))
(draw-super (format "{# fun Fl_%s_draw_super as drawSuper' { id `Ptr ()' } -> `()' supressWarningAboutRes #}
instance (impl ~ ( IO ())) => Op (DrawSuper ()) %s orig impl where
runOp _ _ %s = withRef %s $ \\%sPtr -> drawSuper' %sPtr" class (s-upper-camel-case class) (s-lower-camel-case class) (s-lower-camel-case class) (s-lower-camel-case class) (s-lower-camel-case class)))
(handle (format "{#fun Fl_%s_handle as %sHandle' { id `Ptr ()', id `CInt' } -> `Int' #}
instance (impl ~ (Event -> IO (Either UnknownEvent ()))) => Op (Handle ()) %s orig impl where
runOp _ _ %s event = withRef %s (\\p -> %sHandle' p (fromIntegral . fromEnum $ event)) >>= return . successOrUnknownEvent" class (s-lower-camel-case class) (s-upper-camel-case class) (s-lower-camel-case class) (s-lower-camel-case class) (s-lower-camel-case class)))
(handle-super (format "{# fun Fl_%s_handle_super as handleSuper' { id `Ptr ()',`Int' } -> `Int' #}
instance (impl ~ (Event -> IO (Either UnknownEvent ()))) => Op (HandleSuper ()) %s orig impl where
runOp _ _ %s event = withRef %s $ \\%sPtr -> handleSuper' %sPtr (fromIntegral (fromEnum event)) >>= return . successOrUnknownEvent" class (s-upper-camel-case class) (s-lower-camel-case class) (s-lower-camel-case class) (s-lower-camel-case class) (s-lower-camel-case class)))
(resize (format "{# fun Fl_%s_resize as resize' { id `Ptr ()',`Int',`Int',`Int',`Int' } -> `()' supressWarningAboutRes #}
instance (impl ~ (Rectangle -> IO ())) => Op (Resize ()) %s orig impl where
runOp _ _ %s rectangle = withRef %s $ \\%sPtr -> do
let (x_pos,y_pos,w_pos,h_pos) = fromRectangle rectangle
resize' %sPtr x_pos y_pos w_pos h_pos" class (s-upper-camel-case class) (s-lower-camel-case class) (s-lower-camel-case class) (s-lower-camel-case class) (s-lower-camel-case class)))
(resize-super (format "{# fun Fl_%s_resize_super as resizeSuper' { id `Ptr ()',`Int',`Int',`Int',`Int' } -> `()' supressWarningAboutRes #}
instance (impl ~ (Rectangle -> IO ())) => Op (ResizeSuper ()) %s orig impl where
runOp _ _ %s rectangle =
let (x_pos, y_pos, width, height) = fromRectangle rectangle
in withRef %s $ \\%sPtr -> resizeSuper' %sPtr x_pos y_pos width height" class (s-upper-camel-case class) (s-lower-camel-case class) (s-lower-camel-case class) (s-lower-camel-case class) (s-lower-camel-case class)))
(hide (format "{# fun Fl_%s_hide as hide' { id `Ptr ()' } -> `()' #}
instance (impl ~ ( IO ())) => Op (Hide ()) %s orig impl where
runOp _ _ %s = withRef %s $ \\%sPtr -> hide' %sPtr" class (s-upper-camel-case class) (s-lower-camel-case class) (s-lower-camel-case class) (s-lower-camel-case class) (s-lower-camel-case class)))
(hide-super (format "{# fun Fl_%s_hide_super as hideSuper' { id `Ptr ()' } -> `()' supressWarningAboutRes #}
instance (impl ~ ( IO ())) => Op (HideSuper ()) %s orig impl where
runOp _ _ %s = withRef %s $ \\%sPtr -> hideSuper' %sPtr" class (s-upper-camel-case class) (s-lower-camel-case class) (s-lower-camel-case class) (s-lower-camel-case class) (s-lower-camel-case class)))
(show (format "{# fun Fl_%s_show as show' { id `Ptr ()' } -> `()' #}
instance (impl ~ ( IO ())) => Op (ShowWidget ()) %s orig impl where
runOp _ _ %s = withRef %s $ \\%sPtr -> show' %sPtr" class (s-upper-camel-case class) (s-lower-camel-case class) (s-lower-camel-case class) (s-lower-camel-case class) (s-lower-camel-case class)))
(show-super (format "{# fun Fl_%s_show_super as showSuper' { id `Ptr ()' } -> `()' supressWarningAboutRes #}
instance (impl ~ ( IO ())) => Op (ShowWidgetSuper ()) %s orig impl where
runOp _ _ %s = withRef %s $ \\%sPtr -> showSuper' %sPtr" class (s-upper-camel-case class) (s-lower-camel-case class) (s-lower-camel-case class) (s-lower-camel-case class) (s-lower-camel-case class)))
)
(list draw draw-super handle handle-super resize resize-super hide hide-super show show-super))
)
(define-skeleton custom-instances
""
nil
'(setq v1 (skeleton-read "class:"))
'(setq v2 (custom-instances-list v1))
> (format "%s\n%s\n%s\n%s\n%s\n%s\n%s\n%s\n%s\n%s\n" (nth 0 v2) (nth 1 v2) (nth 2 v2) (nth 3 v2) (nth 4 v2) (nth 5 v2) (nth 6 v2) (nth 7 v2) (nth 8 v2) (nth 9 v2))
)
(define-skeleton custom-datatype
""
nil
> (format "%s" "(Draw
(DrawSuper
(Handle
(HandleSuper
(ShowWidget
(ShowWidgetSuper
(Hide
(HideSuper")
)
(define-skeleton imports
""
nil
> (format "%s" "import Graphics.UI.FLTK.LowLevel.Fl_Enumerations
import Graphics.UI.FLTK.LowLevel.Widget
"))