PreviousUpNext

15.4.1416  src/lib/x-kit/widget/leaf/toggle-type.pkg

## toggle-type.pkg
#
# Base types for toggles

# Compiled by:
#     src/lib/x-kit/widget/xkit-widget.sublib



stipulate
    include threadkit;                                  # threadkit     is from   src/lib/src/lib/thread-kit/src/core-thread-kit/threadkit.pkg
    #
    package bb =  button_base;                          # button_base   is from   src/lib/x-kit/widget/leaf/button-base.pkg
    package wg =  widget;                               # widget        is from   src/lib/x-kit/widget/basic/widget.pkg
herein

    package toggle_type {

        Toggleswitch_Act
          = TOGGLE_SET  Bool
          | TOGGLE_READY
          | TOGGLE_NORMAL
          ;

        Toggleswitch
            =
            TOGGLE
              { widget:     wg::Widget,
                #
                mailop:     Mailop( Toggleswitch_Act ),
                plea_slot:  Mailslot( bb::Plea_Mail )
              };

        fun as_widget (TOGGLE { widget, ... } ) =  widget;

        fun mailop_of (TOGGLE { mailop,  ... } ) =  mailop;


        fun set_button_on_off_flag (TOGGLE { plea_slot, ... }, arg)
            = 
            give  (plea_slot,  bb::SET_STATE arg);


        fun get_button_on_off_flag (TOGGLE { plea_slot, ... } )
            =
            {   reply_1shot = make_oneshot_maildrop ();

                give (plea_slot, bb::GET_STATE reply_1shot);

                get reply_1shot;
            };


        fun set_button_active_flag (TOGGLE { plea_slot, ... }, arg)
            = 
            give  (plea_slot,  bb::SET_BUTTON_ACTIVE_FLAG arg);


        fun get_button_active_flag (TOGGLE { plea_slot, ... } )
            =
            {   reply_1shot = make_oneshot_maildrop ();

                give  (plea_slot,  bb::GET_BUTTON_ACTIVE_FLAG reply_1shot);

                get  reply_1shot;
            };

    };                                  # package toggle_type 

end;

## COPYRIGHT (c) 1994 by AT&T Bell Laboratories  See COPYRIGHT file for details.
## Subsequent changes by Jeff Prothero Copyright (c) 2010-2012,
## released under Gnu Public Licence version 3.


Comments and suggestions to: bugs@mythryl.org

PreviousUpNext