Compile function SRP_GIT_SETTINGS_EVENTS(Event, CtrlEntId, @PARAMS) /************************************************************************************************ * * This program is proprietary and is not to be used by or disclosed to others, nor is it to * be copied without written permission from SRP Computer Solutions, Inc. * * Name : SRP_GIT_SETTINGS_Events * * Description: Event handling commuter module for the SRP_GIT_SETTINGS form. * * User Defined Properties: * * Parameters: * EventID [in] -- Event ID * CtrlEntId [in] -- Control whose event is being handled * Param1-13 [in] -- Event Parameters * * Returns: * Event handling result, usually 1 * * History (Date, Initials, Notes) * 02/25/19 DJS Original programmer * 07/29/19 KRF Updated with different controls and cleaned up the code * ************************************************************************************************/ #pragma precomp SRP_PreCompiler #window SRP_GIT_SETTINGS $Insert LOGICAL Declare function SRP_Git_Services, Get_Property, Utility Declare subroutine SRP_Git_Services, Set_Property, Post_Event, Send_Message GoToEvent Event for CtrlEntId else // Event not implemented end Return 1 //----------------------------------------------------------------------------- // EVENT HANDLERS //----------------------------------------------------------------------------- Event WINDOW.CREATE(CreateParam) GoSub Setup_OLE_Controls GoSub FillUserSettings End Event Event PUB_APPLY.CLICK() GoSub SaveUserSettings Set_Property(CtrlEntID, 'ENABLED', False$) end event Event PUB_OK.CLICK() GoSub SaveUserSettings Post_Event(@Window, 'CLOSE') end event Event CHB_ENABLED.CLICK() GoSub CheckModified end event Event EDL_REPO_LOC.LOSTFOCUS(Flag, FocusID) GoSub CheckModified end event Event EDL_GIT_LOC.LOSTFOCUS(Flag, FocusID) GoSub CheckModified end event Event EDL_GUI_LOC.LOSTFOCUS(Flag, FocusID) GoSub CheckModified end event Event EDL_WARNING.LOSTFOCUS(Flag, FocusID) GoSub CheckModified end event Event OLE_SUBCLASS.OnOptionClick(CtrlId) OrigDirectory = Get_Property(CtrlId, 'TEXT') If CtrlId[-1, "B."] EQ "EDL_REPO_LOC" then Directory = Utility("CHOOSEDIR", @Window, "Select directory":@FM:"%HOMEPATH%") end else Directory = Utility("CHOOSEFILE", @Window, "Select executable":@FM:"%HOMEPATH%") end If Directory NE '' then Set_Property(CtrlId, 'TEXT', Directory) GoSub CheckModified end end event * Event OLE_EDITTABLE_GIT.OnOptionClick(Cell, Point, Button, Shift, Ctrl) * * Col = Field(Cell, ';', 1) * Row = Field(Cell, ';', 2) * OrigDirectory = Get_Property(CtrlEntID, 'OLE.CellText[':Col:'; ':Row:']') * Directory = Utility("CHOOSEFILE", @Window, "Select executable":@FM:"%HOMEPATH%") * If Directory NE '' then * Set_Property(CtrlEntID, 'OLE.CellText[':Col:'; ':Row:']', Directory) * GoSub CheckModified * end * * end event Event OLE_EDITTABLE_GIT.AfterUpdate(Cell, Text, Pattern, OldText) GoSub CheckModified end event //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // Internal GoSubs //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// Setup_OLE_Controls: // Add browse buttons Ctrl = @Window:".OLE_SUBCLASS" CtrlIds = "EDL_REPO_LOC,EDL_GIT_LOC,EDL_GUI_LOC" For i = 1 to 3 CtrlId = @Window:".":Field(CtrlIds, ",", i, 1) Handle = Get_Property(CtrlId, "HANDLE") Send_Message(Ctrl, "OLE.Subclass", Handle, CtrlId) Convert "." to ";" in CtrlId Set_Property(Ctrl, "OLE.OptionButton[":CtrlId:"]", 1) Set_Property(Ctrl, "OLE.OptionImage[":CtrlId:"]", "BMPS\SRPGit.zip#browse.png") Send_Message(Ctrl, "QUALIFY_EVENT", "OLE.OnOptionClick", Yes$) Next i return CheckModified: OrigGenCtrlList = Get_Property(@Window, '@OrigGitCtrlList') CurrGenCtrlList = Get_Property(@Window:".CHB_ENABLED", 'CHECK'):@RM:Get_Property(@Window:".EDL_REPO_LOC", 'TEXT'):@RM:Get_Property(@Window:".EDL_GIT_LOC", 'TEXT'):@RM:Get_Property(@Window:".EDL_GUI_LOC", 'TEXT'):@RM:Get_Property(@Window:".EDL_WARNING", 'TEXT') If CurrGenCtrlList NE OrigGenCtrlList then Set_Property(@Window:'.PUB_APPLY', 'ENABLED', True$) end else Set_Property(@Window:'.PUB_APPLY', 'ENABLED', False$) end return FillUserSettings: // Get the settings GitEnabled = SRP_Git_Services("IsEnabled") GitRepoLoc = SRP_Git_Services("GetRepoPath") GitExePath = SRP_Git_Services("GetGitPath") GitGUICommand = SRP_Git_Services("GetGuiCommand") GitWarning = SRP_Git_Services("GetWarning") // Pass the data to the control Set_Property(@Window:".CHB_ENABLED", "CHECK", GitEnabled) Set_Property(@Window:".EDL_REPO_LOC", "TEXT", GitRepoLoc) Set_Property(@Window:".EDL_GIT_LOC", "TEXT", GitExePath) Set_Property(@Window:".EDL_GUI_LOC", "TEXT", GitGUICommand) Set_Property(@Window:".EDL_WARNING", "TEXT", GitWarning) // Save the data so we know when we can apply Set_Property(@Window, "@OrigGitCtrlList", GitEnabled:@RM:GitRepoLoc:@RM:GitExePath:@RM:GitWarning) Set_Property(@Window:".PUB_APPLY", "ENABLED", False$) return SaveUserSettings: GitEnabled = Get_Property(@Window:".CHB_ENABLED", "CHECK") GitRepoLoc = Get_Property(@Window:".EDL_REPO_LOC", "TEXT") GitExePath = Get_Property(@Window:".EDL_GIT_LOC", "TEXT") GitGUICommand = Get_Property(@Window:".EDL_GUI_LOC", "TEXT") GitWarning = Get_Property(@Window:".EDL_WARNING", "TEXT") SRP_Git_Services("SaveUserSettings", GitEnabled, GitRepoLoc, GitExePath, GitGUICommand, GitWarning) // Save the data so we know when we can apply Set_Property(@Window, "@OrigGitCtrlList", GitEnabled:@RM:GitRepoLoc:@RM:GitExePath:@RM:GitGUICommand:@RM:GitWarning) Set_Property(@Window:".PUB_APPLY", "ENABLED", False$) return