Hi all. A while ago someone started a thread about how to enable or disable individual tabs in a Tab Panel. I wrote these two admittedly simple functions to accommodate this. They both take two parameters, the name of the tab panel, and the tab item, which can be a number or the name of the tab. If you pass "All" for the tab item, it will enable or disable all the tabs. There is some basic error chacking. They will ignore a number that is out of bounds of the number of tab items, or a tab name that does not exist, or a tab panel that does not exist as a button. They will ignore enabling or disabling of tabs that are already enable/disabled respectively. (Already shot myself in the foot with that one!)
ON disableTab theTabPanel, theTab IF theTabPanel is empty THEN exit disableTab IF not there is a button theTabPanel THEN exit disableTab put the text of button theTabPanel into theTabOptions IF theTab is "All" THEN REPEAT WITH i = 1 to the number of lines of theTabOptions IF char 1 of line i of theTabOptions is not "(" THEN put "(" before line i of theTabOptions END IF END REPEAT ELSE SWITCH CASE theTab is a number IF theTab > the number of lines of theTabOptions OR theTab = 0 THEN exit disableTab IF char 1 of line theTab of theTabOptions is not "(" THEN put "(" before line theTab of theTabOptions END IF break CASE theTab is not a number put lineoffset(theTab, theTabOptions) into theTabLine IF theTabLine = 0 THEN exit disableTab IF char 1 of line theTabLine of theTabOptions is not "(" THEN put "(" before line theTabLine of theTabOptions END IF break END SWITCH END IF set the text of button theTabPanel to theTabOptions END disableTab ON enableTab theTabPanel, theTab put the text of button theTabPanel into theTabOptions IF theTab is "All" THEN REPEAT WITH i = 1 to the number of lines of theTabOptions IF char 1 of line i of theTabOptions is "(" THEN put empty into char 1 of line i of theTabOptions END IF END REPEAT ELSE SWITCH CASE theTab is a number IF theTab > the number of lines of theTabOptions OR theTab = 0 THEN exit enableTab IF char 1 of line theTab of theTabOptions is "(" THEN put empty into char 1 of line theTab of theTabOptions END IF break CASE theTab is not a number put lineoffset(theTab, theTabOptions) into theTabLine IF theTabLine = 0 THEN exit enableTab IF char 1 of line theTabLine of theTabOptions is "(" THEN put empty into char 1 of line theTabLine of theTabOptions END IF break END SWITCH END IF set the text of button theTabPanel to theTabOptions END enableTab _______________________________________________ use-livecode mailing list use-livecode@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode