Changeset 13

Show
Ignore:
Timestamp:
11/25/06 20:38:14 (2 years ago)
Author:
baxissimo
Message:

Changed signalobj method names

fconnect --> connect
connect --> connect_exact

Since it turns out that there's almost never a reason to use the exact version.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/luigi/adaptor/base.d

    r11 r13  
    122122 
    123123    // Implementation of InputAdaptor 
    124     void addKeyCallback(KeyEventFn cb)                 {_lsig.key.fconnect(cb);} 
    125     void addMouseButtonCallback(MouseButtonEventFn cb) {_lsig.mouseButton.fconnect(cb);} 
    126     void addMouseMoveCallback(MouseMoveEventFn cb)     {_lsig.mouseMove.fconnect(cb);} 
    127     void addMouseWheelCallback(MouseWheelEventFn cb)   {_lsig.mouseWheel.fconnect(cb);} 
    128     void addWindowSizeCallback(WindowSizeEventFn cb)   {_lsig.windowSize.fconnect(cb);} 
    129     void addWindowCloseCallback(WindowCloseEventFn cb) {_lsig.windowClose.fconnect(cb);}  
     124    void addKeyCallback(KeyEventFn cb)                 {_lsig.key.connect(cb);} 
     125    void addMouseButtonCallback(MouseButtonEventFn cb) {_lsig.mouseButton.connect(cb);} 
     126    void addMouseMoveCallback(MouseMoveEventFn cb)     {_lsig.mouseMove.connect(cb);} 
     127    void addMouseWheelCallback(MouseWheelEventFn cb)   {_lsig.mouseWheel.connect(cb);} 
     128    void addWindowSizeCallback(WindowSizeEventFn cb)   {_lsig.windowSize.connect(cb);} 
     129    void addWindowCloseCallback(WindowCloseEventFn cb) {_lsig.windowClose.connect(cb);}  
    130130 
    131131    // And again for delegates... 
    132     void addKeyCallback(KeyEventDg cb)                 {_lsig.key.fconnect(cb);}          
    133     void addMouseButtonCallback(MouseButtonEventDg cb) {_lsig.mouseButton.fconnect(cb);}  
    134     void addMouseMoveCallback(MouseMoveEventDg cb)     {_lsig.mouseMove.fconnect(cb);}    
    135     void addMouseWheelCallback(MouseWheelEventDg cb)   {_lsig.mouseWheel.fconnect(cb);}   
    136     void addWindowSizeCallback(WindowSizeEventDg cb)   {_lsig.windowSize.fconnect(cb);}   
    137     void addWindowCloseCallback(WindowCloseEventDg cb) {_lsig.windowClose.fconnect(cb);}  
     132    void addKeyCallback(KeyEventDg cb)                 {_lsig.key.connect(cb);}          
     133    void addMouseButtonCallback(MouseButtonEventDg cb) {_lsig.mouseButton.connect(cb);}  
     134    void addMouseMoveCallback(MouseMoveEventDg cb)     {_lsig.mouseMove.connect(cb);}    
     135    void addMouseWheelCallback(MouseWheelEventDg cb)   {_lsig.mouseWheel.connect(cb);}   
     136    void addWindowSizeCallback(WindowSizeEventDg cb)   {_lsig.windowSize.connect(cb);}   
     137    void addWindowCloseCallback(WindowCloseEventDg cb) {_lsig.windowClose.connect(cb);}  
    138138 
    139139} 
  • trunk/luigi/adaptor/glfw.d

    r11 r13  
    112112class GLFWAdaptor : InputAdaptor 
    113113{ 
    114     // Singleton access via GLFWAdaptor() 
     114    // Singleton access via static opCall GLFWAdaptor() 
    115115    static GLFWAdaptor opCall() { 
    116116        static GLFWAdaptor myinstance = null; 
     
    121121        return myinstance; 
    122122    } 
     123    // Singleton access via 'inst' property 
    123124    static GLFWAdaptor inst() { 
    124125        return GLFWAdaptor(); 
  • trunk/luigi/example1.d

    r11 r13  
    8787    with(luigui) { 
    8888        Luigi().adaptor = GLFWAdaptor(); 
    89         StdTheme theme = cast(StdTheme)Luigi().theme; 
    9089        gui = new Overlay; 
    9190     
     
    9897        alias Alignment A; 
    9998 
    100         Panel eastGroup = gui.add_widget(new GridPanel(1,0, Gaps(2))); 
    101         gui.arranger.add(eastGroup, Region.East); 
     99        auto eastGroup =  
     100            arranged(gui.add_widget(new GridPanel(1,0, Gaps(2))), Region.East); 
     101        auto westGroup = 
     102            arranged(gui.add_widget(new GridPanel(2,0, Gaps(2))), Region.West); 
     103        auto northGroup = arranged(gui.add_widget(new FlowPanel), Region.North); 
     104        auto southGroup = arranged(gui.add_widget(new FlowPanel), Region.South); 
     105 
    102106        with(eastGroup) { 
    103107            alias eastGroup g; // workaround for http://tinyurl.com/u5eal 
    104             Button b3 = g.add_widget(new Button("Luigi")); 
     108            auto b0 = g.add_widget(new Button("Luigi")); 
    105109            g.add_widget(new Button("Is")); 
    106110            g.add_widget(new Button("My")); 
    107111            g.add_widget(new Button("Pal")); 
    108             b3.disable(); 
    109         } 
    110  
    111         Panel northGroup = arranged(gui.add_widget(new FlowPanel), Region.North); 
     112            auto b1 = g.add_widget(new Button("Hide West")); 
     113 
     114            b0.disable(); 
     115            b1.clicked.connect( &westGroup.toggle_shown ); 
     116        } 
     117 
    112118        with (northGroup) { 
    113119            alias northGroup g; // workaround for http://tinyurl.com/u5eal 
    114             Button b10 =   g.add_widget(new Button("File")); 
    115             Button b11 =   g.add_widget(new Button("Edit")); 
    116             Button b12 =   g.add_widget(new Button("View")); 
    117             Button b13 =   g.add_widget(new Button("Favorites")); 
    118             Button b14 =   g.add_widget(new Button("Tools")); 
    119             Button b15 =   g.add_widget(new Button("Options")); 
    120             Checkbox c15 = g.add_widget(new Checkbox("Check it out!")); 
    121             Button b16 =   g.add_widget(new Button("Help")); 
    122  
    123 /* 
     120            auto b10 =   g.add_widget(new Button("File")); 
     121            auto b11 =   g.add_widget(new Button("Edit")); 
     122            auto b12 =   g.add_widget(new Button("View")); 
     123            auto b13 =   g.add_widget(new Button("Favorites")); 
     124            auto b14 =   g.add_widget(new Button("Tools")); 
     125            auto b15 =   g.add_widget(new Button("Options")); 
     126            auto c15 =   g.add_widget(new Checkbox("Check it out!")); 
     127            auto b16 =   g.add_widget(new Button("Help")); 
     128 
    124129            c15.value_changed.connect( (Widget w, bool onoff) 
    125130            {  
    126131                writefln(onoff?"checked!":"unchecked!");  
    127132            }); 
    128 */ 
    129             auto T = new DelegateSlot!(Widget,bool)( 
    130                 (Widget w, bool onoff) 
    131                 {  
    132                     writefln(onoff?"checked!":"unchecked!"); 
    133                 }); 
    134             c15.value_changed.connect( &T.slot ); 
    135         } 
    136  
    137         Panel southGroup = arranged(gui.add_widget(new FlowPanel), Region.South); 
     133        } 
     134 
    138135        with(southGroup) { 
    139136            alias southGroup g; // workaround for http://tinyurl.com/u5eal 
    140137            //Button b0 = add_widget(new Button("Hohoho!")); 
    141             Label l0 = g.add_widget(new Label( "FirstName:")); 
    142             TextField t0 = g.add_widget(new TextField); 
    143             TextField t1 = g.add_widget(new TextField("Last name:")); 
     138            auto l0 = g.add_widget(new Label( "FirstName:")); 
     139            auto t0 = g.add_widget(new TextField); 
     140            auto t1 = g.add_widget(new TextField("Last name:")); 
    144141            t1.text = "Rumplestilskin"; 
    145             Button b4 = g.add_widget(new Button("Click me!")); 
    146             //b4.clicked.connect( (Widget w){ writefln("Ouch! Not so hard!"); } );  
    147             auto T = new DelegateSlot!(Widget)((Widget w){ writefln("Ouch! Not so hard!"); } );  
    148             b4.clicked.connect( &T.slot ); 
    149         } 
    150  
    151  
    152         Panel westGroup = gui.add_widget(new GridPanel(2,0, Gaps(2))); 
    153         gui.arranger.add(westGroup, Region.West); 
    154         //Panel westGroup = arranged(gui.add_widget( new GridPanel(2,0, Gaps(2))) , Region.West); 
     142            auto b4 = g.add_widget(new Button("Click me!")); 
     143            b4.clicked.connect((Widget w){ writefln("Ouch! Not so hard!"); }  ); 
     144        } 
    155145 
    156146        with (westGroup) { 
    157147            alias westGroup g; // workaround for http://tinyurl.com/u5eal 
    158             Button b20 = arranged( g.add_widget(new Button("Tool0"))); 
    159             Button b21 = arranged( g.add_widget(new Button("Tool1"))); 
    160             Button b22 = arranged( g.add_widget(new Button("Tool2"))); 
    161             Button b23 = arranged( g.add_widget(new Button("Tool3"))); 
    162             Button b24 = arranged( g.add_widget(new Button("LongNameTool4"))); 
    163             Button b25 = arranged( g.add_widget(new Button("Tool5"))); 
    164             Button b26 = arranged( g.add_widget(new Button("Tool6"))); 
    165             Button b27 = arranged( g.add_widget(new Button("Tool7"))); 
    166             Button b28 = arranged( g.add_widget(new Button("Tool8"))); 
    167             Button b29 = arranged( g.add_widget(new Button("Tool9"))); 
    168             Slider s01 = arranged( g.add_widget(new Slider("Thingy"))); 
    169             Slider s02 = arranged( g.add_widget(new Slider("Thingy"))); 
     148            auto b20 = arranged( g.add_widget(new Button("Tool0")) ); 
     149            auto b21 = arranged( g.add_widget(new Button("Tool1")) ); 
     150            auto b22 = arranged( g.add_widget(new Button("Tool2")) ); 
     151            auto b23 = arranged( g.add_widget(new Button("Tool3")) ); 
     152            auto b24 = arranged( g.add_widget(new Button("LongNameTool4")) ); 
     153            auto b25 = arranged( g.add_widget(new Button("Tool5")) ); 
     154            auto b26 = arranged( g.add_widget(new Button("Tool6")) ); 
     155            auto b27 = arranged( g.add_widget(new Button("Tool7")) ); 
     156            auto b28 = arranged( g.add_widget(new Button("Tool8")) ); 
     157            auto b29 = arranged( g.add_widget(new Button("Tool9")) ); 
     158            auto s01 = arranged( g.add_widget(new Slider("Thingy")) ); 
     159            auto s02 = arranged( g.add_widget(new Slider("Thingy")) ); 
    170160            s02.vertical = true; 
    171161            s01.precision = 0.1; 
    172162            s02.precision = 0.1; 
    173             auto T = new DelegateSlot!(double)((double d){ writefln("Slider now %s",d); } ); 
    174             s01.value_changed.fconnect2nd(&T.slot); 
    175             s02.value_changed.fconnect2nd(&T.slot); 
    176             s02.value_changed.fconnect2nd(&s01.value); 
    177             s01.value_changed.fconnect2nd(&s02.value); 
     163 
     164            s01.value_changed.connect2nd( (double d){ writefln("Slider now %s",d); } ); 
     165            s02.value_changed.connect2nd( (double d){ writefln("Slider now %s",d); } ); 
     166            s02.value_changed.connect2nd(&s01.value); 
     167            s01.value_changed.connect2nd(&s02.value); 
    178168        } 
    179169 
    180170/* 
    181171       // This is my ideal version, but it requires more smarts from D IFTI 
    182        // And from using auto with return value from templates 
    183172   
    184173        Button b3 = gui.add_widget(new Button("Mate!")).arranged(Region.East); 
  • trunk/luigi/gui.d

    r12 r13  
    3333 
    3434/* 
    35   WARNING: Because of how overloading works in D as of 0.174,  
     35  WARNING: Because of how overloading works in D as of 0.175,  
    3636           ** ALL SETTERS SHOULD COME BEFORE GETTERS ** 
    3737  I.e. 
     
    4343          int value() 
    4444 
    45    Otherwise, signal.fconnect will connect to the getter rather  
     45   Otherwise, signal.connect will connect to the getter rather  
    4646   than the setter. 
    4747 */ 
     
    297297    bool shown(bool show_) { return m_shown = show_; } 
    298298    bool shown() { return m_shown; } 
    299  
     299    void toggle_shown() { m_shown = !m_shown; } 
    300300 
    301301    /** Return the parent of this item or null if it has no parent. 
  • trunk/luigi/signalobj.d

    r11 r13  
    7070/** FlexSignal is a more flexible version of a signal object wrapper.   
    7171 * 
    72  *  Using the fconnect/fdisconnect methods it is possible to connect the  
     72 *  Using the connect/disconnect methods it is possible to connect the  
    7373 *  signal to most any callable entity with a signature that is 'compatible'. 
    7474 *  with the signal's signature. 
     
    100100     *  Returns: the slot passed in. 
    101101     */ 
    102     slot_t connect(slot_t f) { 
     102    slot_t connect_exact(slot_t f) { 
    103103        s.connect(f); 
    104104        return f; 
     
    109109     *  Returns: the slot passed in. 
    110110     */ 
    111     slot_t disconnect(slot_t f) {  
     111    slot_t disconnect_exact(slot_t f) {  
    112112        s.disconnect(f);  
    113113        return f; 
     
    133133     * have it.) 
    134134     */ 
    135     slot_key fconnect(DT,int arg_offset=0)(DT f) 
     135    slot_key connect(DT,int arg_offset=0)(DT f) 
    136136    { 
    137137        // make the key 
     
    150150    } 
    151151    /** Some simple wrappers for the most comment skipped argument  
    152      *  versions of fconnect.  These work around the implicit  
     152     *  versions of connect.  These work around the implicit  
    153153     *  instantiation problem. 
    154154     */ 
    155     slot_key fconnect1st(DT)(DT f) { return fconnect!(DT,0)(f);  } 
    156     slot_key fconnect2nd(DT)(DT f) { return fconnect!(DT,1)(f);  } 
    157     slot_key fconnect3rd(DT)(DT f) { return fconnect!(DT,2)(f);  } 
    158     slot_key fconnect4th(DT)(DT f) { return fconnect!(DT,3)(f);  } 
    159     slot_key fconnect5th(DT)(DT f) { return fconnect!(DT,4)(f);  } 
     155    slot_key connect1st(DT)(DT f) { return connect!(DT,0)(f);  } 
     156    slot_key connect2nd(DT)(DT f) { return connect!(DT,1)(f);  } 
     157    slot_key connect3rd(DT)(DT f) { return connect!(DT,2)(f);  } 
     158    slot_key connect4th(DT)(DT f) { return connect!(DT,3)(f);  } 
     159    slot_key connect5th(DT)(DT f) { return connect!(DT,4)(f);  } 
    160160    // this doesn't quite work yet because of DMD bug #540 
    161     // Name also has to be different from 'fconnect' for what also looks  
     161    // Name also has to be different from 'connect' for what also looks  
    162162    // to be a compiler bug.  They should be able to co-exist.  
    163     template fconnecti(int arg_offset) { 
    164         slot_key fconnecti(DT)(DT f) 
     163    template connecti(int arg_offset) { 
     164        slot_key connecti(DT)(DT f) 
    165165        { 
    166             return fconnect!(DT,arg_offset)(f); 
     166            return connect!(DT,arg_offset)(f); 
    167167        } 
    168168    } 
    169169 
    170170    /** Disconnect a slot of any type */ 
    171     void fdisconnect(DT)(DT f) {  
     171    void disconnect(DT)(DT f) {  
    172172        static if( is(DT==slot_t) ) { 
    173             s.disconnect(f); 
     173            s.disconnect_exact(f); 
    174174        } 
    175175        else { 
     
    184184 
    185185            if (f_key in thunkMap) { 
    186                 s.disconnect(thunkMap[f_key]); 
     186                s.disconnect_exact(thunkMap[f_key]); 
    187187            } else { 
    188188                debug writefln("FlexSignal.fdisconnect: Slot not found"); 
     
    346346     
    347347    auto sig1 = new SignalObj!(int); 
    348     sig1.connect(&s1.slot1); 
    349     //sig1.connect(&s1.slot0); // error mismatch 
     348    sig1.connect_exact(&s1.slot1); 
     349    //sig1.connect_exact(&s1.slot0); // error mismatch 
    350350 
    351351    writefln(">>> SignalObject EMIT"); 
     
    371371 
    372372 
    373     fsig.fconnect(&s1.slot3); 
    374     fsig.fconnect(&s1.slot2); 
    375     fsig.fconnect(&s1.slot1); 
    376     fsig.fconnect(&s1.slot0); 
    377     fsig.fconnect(&s2.slot3); 
    378     fsig.fconnect(&s2.slot2); 
    379     fsig.fconnect(&s2.slot1); 
    380     fsig.fconnect(&s2.slot0); 
    381  
    382     fsig.fconnect(&func0); 
    383     fsig.fconnect(&func1); 
    384     fsig.fconnect(&func2); 
    385     fsig.fconnect(&func3); 
    386     fsig.fconnect(&func3ldr); 
     373    fsig.connect(&s1.slot3); 
     374    fsig.connect(&s1.slot2); 
     375    fsig.connect(&s1.slot1); 
     376    fsig.connect(&s1.slot0); 
     377    fsig.connect(&s2.slot3); 
     378    fsig.connect(&s2.slot2); 
     379    fsig.connect(&s2.slot1); 
     380    fsig.connect(&s2.slot0); 
     381 
     382    fsig.connect(&func0); 
     383    fsig.connect(&func1); 
     384    fsig.connect(&func2); 
     385    fsig.connect(&func3); 
     386    fsig.connect(&func3ldr); 
    387387 
    388388    // Connect, but skip the first arg of the signal 
    389389    // I.e. just subscribe to the string part of the message. 
    390390    // This IFTI limitation is annoying! 
    391     // fsig.fconnecti!(1)(&func1s); 
    392     //fsig.fconnect!(typeof(&func1s),1)(&func1s); 
    393     fsig.fconnect2nd(&func1s); 
     391    // fsig.connecti!(1)(&func1s); 
     392    //fsig.connect!(typeof(&func1s),1)(&func1s); 
     393    fsig.connect2nd(&func1s); 
    394394 
    395395    slot_key literal =  
    396         fsig.fconnect( (int i){ writefln("@@@ Hello from delegate literal! int=",i); }); 
     396        fsig.connect( (int i){ writefln("@@@ Hello from delegate literal! int=",i); }); 
    397397 
    398398    writefln("\n>>> FlexSignal EMIT (3,\"A three\",9.9)"); 
    399399    fsig.emit(3,"A three!",9.9); 
    400400 
    401     fsig.fdisconnect(&s2.slot0); 
     401    fsig.disconnect(&s2.slot0); 
    402402    fsig.disconnect(&s1.slot3); 
    403403 
    404     fsig.fdisconnect(&func0); 
    405     fsig.fdisconnect(&func1); 
    406     fsig.fdisconnect(&func2); 
    407  
    408     fsig.fdisconnect(literal); 
     404    fsig.disconnect(&func0); 
     405    fsig.disconnect(&func1); 
     406    fsig.disconnect(&func2); 
     407 
     408    fsig.disconnect(literal); 
    409409 
    410410    writefln("\n>>> FlexSignal EMIT (4,\"A four!\",8.8)");