- Using Windows API with PB native commands unless there is a need for it is a bad practice
- When you run an external application you must have an ID to deal with it as circumstances
Code: Select all
PimFindid = RunProgram("PimFind.exe","","",#PB_Program_Open )
- I just did some improvements but it is not enough or quit right
- Afterall you have to redo your work again
Code: Select all
; PimClip.pb 3.0
; Author: Vern Marsden : vmars316 @ http://www.purebasic.fr/english/
; Author Website: http://www.vmars.us/
; Date: March 16 , 2020
; OS: Windows x86; Also see pimFind.pb 3.0
; https://www.purebasic.com/documentation/reference/ug_overview.html
; https://www.rsbasic.de/tipps-und-tricks/
; TODO myFavs.lnk
;EnableExplicit
;SetGadgetFont(#PB_Default, FontID(LoadFont(#PB_Any, "Verdana",10)))
Global Window_0 = 0, TraceON = #False, TraceLIne$, ComingFrom$, CancelCopyReq = #False
Global ClipboardViewerNext.i, showTopicsCkBox, SaveClipText$
Global clipstring$, d$, getdatecnt, dttime$, showTopicsCkBoxState = #False, showTopicsCkBoxState2 = #False, LogThis = #False
Global PimClipName$="****", OpenPimClipName$="00000000", selectedTopic$, Event, WindowID, Result
Global TrayIcon , IconName$ = "vmars-Logo.ico", TraceLIne$, ComingFrom$
Global sendToBtn, findBtn, exitBtn, helpBtn, restartBtn, AddPrependTopicText$, SelectedNewTopicTextLEN = 0
Global Window_1 = 1 , CreateFrom$
Global TopicsListFile$ = "TopicsBtnList.txt", TopicBtnName$, TopicBtnNumber, TopicBtnCount.l = 1, LogThisString$
Global TopicContainer, NewTopic, EditListBtn, Btn_0, Btn_1, Btn_2, Btn_3, Btn_4, Btn_5, Btn_6, Btn_7, Btn_8, Btn_9,
Btn_10, Btn_11, Btn_12, Btn_13, Btn_14, Btn_15, Btn_16, Btn_17, Btn_18, Btn_19, Btn_20, Btn_21,
Btn_22, Btn_23, Btn_24, Btn_25, Btn_26, Btn_27, Btn_28, Btn_29, Btn_30, Btn_31, Btn_32, Btn_33, Btn_34, Btn_35,
Btn_36, Btn_37, Btn_38, Btn_39, Btn_40,
CancelCopyBtn, TopicsCkBox2, TopicsCkBoxState2 = #False
Global SpeakBtnNumber = 0, BibleSearchBtnNumber = 0, BingSearchBtnNumber = 0, GoogleSearchBtnNumber = 0
Global LaunchBtnNumber = 0 , LaunchClipText$ , EventGadgetNumber = 0 , SpeakCkBoxState = #False ; Speak this text !
Global SelectedTopicText$, Window_1_Width.l = 275, Window_1_Height.l = 640, Window_1_Xpos,
Window_1_Ypos, MaxBtnCount.l = 40 , SpeakCkBox , FindScreenBtn
;
Declare OpenWindow_0()
Declare OpenWindow_1()
Declare LogSomething()
Declare GetDate()
Declare CallBack(hWnd, Msg, wParam, lParam)
Declare CloseWindow_window_0()
Declare LogSelectedTopic()
Declare SetupTopicButtons()
Declare Btn_1_clicked()
Declare CreateTraceFile()
Declare WriteTraceLine(TraceLIne$)
Declare CloseTraceFile()
;
Procedure OpenWindow_0()
OpenWindow(Window_0, 0, 0, 448, 110, "BUTTONS-PIM PimClip.exe 3.0",
#PB_Window_SystemMenu|#PB_Window_MinimizeGadget| #PB_Window_ScreenCentered) ;
SetWindowColor(Window_0, RGB(192,192,192))
SetWindowPos_(WindowID(Window_0),#HWND_TOPMOST,0,0,0,0,#SWP_NOMOVE|#SWP_NOSIZE)
WindowBounds(0, 448, 110, 448, 110)
; SetGadgetFont(Window_0,LoadFont(0,"Verdana",12))
sendToBtn = ButtonGadget(#PB_Any, 12, 20, 146, 28, "HIDE ME", #PB_Button_Default)
findBtn = ButtonGadget(#PB_Any, 170, 20, 80, 28, "FIND", #PB_Button_Default)
exitBtn = ButtonGadget(#PB_Any, 260, 20, 80, 28, "EXIT", #PB_Button_Default)
helpBtn = ButtonGadget(#PB_Any, 350, 20, 80, 28, "HELP", #PB_Button_Default)
restartBtn = ButtonGadget(#PB_Any, 12, 63, 146, 28, "Restart PimClip", #PB_Button_Default)
showTopicsCkBox = CheckBoxGadget(#PB_Any, 260, 63, 168, 30, "Prompt for Topic.", #PB_CheckBox_Center | #PB_Checkbox_Checked ) ; #PB_Checkbox_Unchecked)
GadgetToolTip(showTopicsCkBox, "'Show Topic Buttons' POPUP for each COPY. ELSE: FILE each Copy under MISC .")
EndProcedure ; OpenWindow_0()
;
Procedure OpenWindow_1()
Window_1_Xpos = (GetSystemMetrics_(#SM_CXSCREEN) - Window_1_Width) ; horizontal width.
Window_1_Ypos = (GetSystemMetrics_(#SM_CYSCREEN) - Window_1_Height) ; vertical height.
If OpenWindow(Window_1, Window_1_Xpos, 0, Window_1_Width, Window_1_Height, "PimClip", #PB_Window_SystemMenu | #PB_Window_MinimizeGadget| #PB_Window_SizeGadget | #PB_Window_Invisible,WindowID(Window_0))
SetWindowColor(Window_1, RGB(192,192,192))
;SetWindowPos_(WindowID(Window_1),#HWND_TOPMOST,0,0,0,0,#SWP_NOMOVE|#SWP_NOSIZE)
UseGadgetList(WindowID( Window_1))
TopicContainer = ContainerGadget(#PB_Any, 12, 10, 248, 584)
NewTopic = StringGadget(#PB_Any, 10, 9, 110, 24, " ")
GadgetToolTip(NewTopic, "Enter PrePend Text . Then Click Buttons below...")
TopicsCkBox2 = CheckBoxGadget(#PB_Any, 128, 9, 110, 26, "PromptTopics", #PB_Checkbox_Checked)
SetGadgetColor(TopicsCkBox2, #PB_Gadget_BackColor, $C0C0C0)
GadgetToolTip(TopicsCkBox2, "'Show Topic Buttons' POPUP for each COPY. ELSE: FILE each COPY under MISC .")
CancelCopyBtn = ButtonGadget(#PB_Any, 10, 35, 110, 24, "Cancel Copy", #PB_Button_Default)
GadgetToolTip(CancelCopyBtn, "CANCEL Current Copy Command .")
EditListBtn = ButtonGadget(#PB_Any, 126, 35, 110, 24, "Edit Topic List", #PB_Button_Default)
GadgetToolTip(EditListBtn, "EDIT TopicsBtnList.txt file... Then Restart pimClip .")
FindScreenBtn = ButtonGadget(#PB_Any, 10, 60, 110, 24, "FIND", #PB_Button_Default)
GadgetToolTip(FindScreenBtn, "Run FIND Program .")
SpeakCkBox = CheckBoxGadget(#PB_Any, 126, 62, 110, 24, "Speak Copy", #PB_Checkbox_Unchecked)
SetGadgetColor(SpeakCkBox, #PB_Gadget_BackColor, $C0C0C0)
; SpeakBtn = ButtonGadget(#PB_Any, 112, 60, 100, 24, "SPEAK", #PB_Button_Default)
GadgetToolTip(SpeakCkBox, "Check to SPEAK Each Copied TEXT .") ; copy this
;
Btn_1 = ButtonGadget(1, 10, 96, 110, 24, "", #PB_Button_Default)
Btn_2 = ButtonGadget(2, 10, 120, 110, 24, "", #PB_Button_Default)
Btn_3 = ButtonGadget(3, 10, 144, 110, 24, "", #PB_Button_Default)
Btn_4 = ButtonGadget(4, 10, 168, 110, 24, "", #PB_Button_Default)
Btn_5 = ButtonGadget(5, 10, 192, 110, 24, "", #PB_Button_Default)
Btn_6 = ButtonGadget(6, 10, 216, 110, 24, "", #PB_Button_Default)
Btn_7 = ButtonGadget(7, 10, 240, 110, 24, "", #PB_Button_Default)
Btn_8 = ButtonGadget(8, 10, 264, 110, 24, "", #PB_Button_Default)
Btn_9 = ButtonGadget(9, 10, 288, 110, 24, "", #PB_Button_Default)
Btn_10 = ButtonGadget(10, 10, 312, 110, 24, "", #PB_Button_Default)
Btn_11 = ButtonGadget(11, 10, 336, 110, 24, "", #PB_Button_Default)
Btn_12 = ButtonGadget(12, 10, 360, 110, 24, "", #PB_Button_Default)
Btn_13 = ButtonGadget(13, 10, 384, 110, 24, "", #PB_Button_Default)
Btn_14 = ButtonGadget(14, 10, 408, 110, 24, "", #PB_Button_Default)
Btn_15 = ButtonGadget(15, 10, 432, 110, 24, "", #PB_Button_Default)
Btn_16 = ButtonGadget(16, 10, 456, 110, 24, "", #PB_Button_Default)
Btn_17 = ButtonGadget(17, 10, 480, 110, 24, "", #PB_Button_Default)
Btn_18 = ButtonGadget(18, 10, 504, 110, 24, "", #PB_Button_Default)
Btn_19 = ButtonGadget(19, 10, 528, 110, 24, "", #PB_Button_Default)
Btn_20 = ButtonGadget(20, 10, 552, 110, 24, "", #PB_Button_Default)
;
Btn_21 = ButtonGadget(21, 128, 96, 110, 24, "", #PB_Button_Default)
Btn_22 = ButtonGadget(22, 128, 120, 110, 24, "", #PB_Button_Default)
Btn_23 = ButtonGadget(23, 128, 144, 110, 24, "", #PB_Button_Default)
Btn_24 = ButtonGadget(24, 128, 168, 110, 24, "", #PB_Button_Default)
Btn_25 = ButtonGadget(25, 128, 192, 110, 24, "", #PB_Button_Default)
Btn_26 = ButtonGadget(26, 128, 216, 110, 24, "", #PB_Button_Default)
Btn_27 = ButtonGadget(27, 128, 240, 110, 24, "", #PB_Button_Default)
Btn_28 = ButtonGadget(28, 128, 264, 110, 24, "", #PB_Button_Default)
Btn_29 = ButtonGadget(29, 128, 288, 110, 24, "", #PB_Button_Default)
Btn_30 = ButtonGadget(30, 128, 312, 110, 24, "", #PB_Button_Default)
Btn_31 = ButtonGadget(31, 128, 336, 110, 24, "", #PB_Button_Default)
Btn_32 = ButtonGadget(32, 128, 360, 110, 24, "", #PB_Button_Default)
Btn_33 = ButtonGadget(33, 128, 384, 110, 24, "", #PB_Button_Default)
Btn_34 = ButtonGadget(34, 128, 408, 110, 24, "", #PB_Button_Default)
Btn_35 = ButtonGadget(35, 128, 432, 110, 24, "", #PB_Button_Default)
Btn_36 = ButtonGadget(36, 128, 456, 110, 24, "", #PB_Button_Default)
Btn_37 = ButtonGadget(37, 128, 480, 110, 24, "", #PB_Button_Default)
Btn_38 = ButtonGadget(38, 128, 504, 110, 24, "", #PB_Button_Default)
Btn_39 = ButtonGadget(39, 128, 528, 110, 24, "", #PB_Button_Default)
Btn_40 = ButtonGadget(40, 128, 552, 110, 24, "", #PB_Button_Default)
CloseGadgetList()
EndIf ; If OpenWindow(Window_1
;HideWindow(Window_1, #True)
; StickyWindow(Window_1, #False)
ComingFrom$ = " OpenWindow_1() "
EndProcedure ; OpenWindow_1()
;
Procedure Btn_1_clicked()
If TraceON : TraceLine$ = ("ComingFrom$ = " + ComingFrom$ + " Procedure Btn_1_clicked()") : WriteTraceLine(TraceLIne$) : EndIf
SelectedTopicText$ = GetGadgetText(Btn_1)
LogThis = #True
LogSelectedTopic()
LogThis = #False
HideWindow(Window_1, #True)
ComingFrom$ = " Btn_1_clicked "
; StickyWindow(Window_1, #False)
EndProcedure ; Btn_1_clicked()
;
Procedure GetDate()
If TraceON : TraceLine$ = " " : WriteTraceLine(TraceLIne$) : EndIf ; Insert blank line into TraceProgram.txt
If TraceON : TraceLine$ = ("ComingFrom$ = " + ComingFrom$ + "Procedure GetDate()") : WriteTraceLine(TraceLIne$) : EndIf
GetDateCnt+1
d$=FormatDate("%yyyy-%mm-%dd",Date())
dttime$=FormatDate("%hh:%ii:%ss",Date())
ComingFrom$ = " Getdatfe() "
EndProcedure ; GetDate()
;
Procedure TopicBtn_clicked()
SelectedTopicText$ = GetGadgetText(EventGadget())
If TraceON : TraceLine$ = ("ComingFrom$ = " + ComingFrom$ + "Procedure TopicBtn_clicked() " + SelectedTopicText$) : WriteTraceLine(TraceLIne$) : EndIf
LogThis = #True
AddPrependTopicText$ = GetGadgetText(NewTopic)
LogSelectedTopic()
LogThis = #False
HideWindow(Window_1, #True)
ComingFrom$ + " TopicBtn_clicked "
EndProcedure ; TopicBtn_clicked()
;
Procedure LogSelectedTopic()
If TraceON : TraceLine$ = ("ComingFrom$ = " + ComingFrom$ + "Procedure LogSelectedTopic()") : WriteTraceLine(TraceLIne$) : EndIf
GetDate()
; MessageRequester(AddPrependTopicText$, AddPrependTopicText$ ) ; myFavs.lnk , SimpleLaunch.lnk
If EventGadgetNumber = SpeakBtnNumber : RunProgram("SpeakClipboard.bat") : EndIf
If EventGadgetNumber = BibleSearchBtnNumber : RunProgram("http://biblegateway.com/passage/?search=" + SaveClipText$ + "&version=ESV") : EndIf
If EventGadgetNumber = BingSearchBtnNumber : RunProgram("http://bing.com/search?q=" + SaveClipText$) : EndIf
If EventGadgetNumber = GoogleSearchBtnNumber : RunProgram("https://www.google.com/search?q=" + SaveClipText$) : EndIf
If EventGadgetNumber = LaunchBtnNumber : LaunchClipText$ = (SaveClipText$ + ".lnk") : RunProgram(SaveClipText$) : EndIf ; myFavs
; If EventGadgetNumber = LaunchBtnNumber : MessageRequester("LaunchClipText$" , LaunchClipText$ ) : EndIf If SpeakCkBoxState = #True : RunProgram("SpeakClipboard.bat") : EndIf
If d$ <> OpenPimClipName$ ; file could have been closed but Exists
PimClipName$ = (d$ + ".txt")
OpenPimClipName$ = PimClipName$
EndIf ; IF d$ <> OpenPimClipName$
; This is the Copied Text
If OpenFile(0,PimClipname$,#PB_File_Append |#PB_Ascii) ; AddPrependTopicText$
If TraceON : TraceLine$ = ("ComingFrom$ = " + ComingFrom$ + "LogSelectedTopic : OpenFile(0,PimClipname$") : WriteTraceLine(TraceLIne$) : EndIf
; WriteStringN(0,("~~" + SelectedTopicText$ + "~~" + AddPrependTopicText$ + SaveClipText$), #PB_Ascii) ; no showTopicsCkBox checked
WriteStringN(0,("~~" + SelectedTopicText$ + "~~" + GetGadgetText(NewTopic) + SaveClipText$), #PB_Ascii) ; no showTopicsCkBox checked
; MessageRequester("","~~" + SelectedTopicText$ + "~~" + " AddPrependTopicText$ = " + AddPrependTopicText$ + " " + "SaveClipText$ = " + SaveClipText$)
LogThis = #False
HideWindow(Window_1, #True)
CloseFile(0)
EndIf
ComingFrom$ = "LogSelectedTopic()"
SetGadgetText(NewTopic, "")
AddPrependTopicText$ = ""
EndProcedure ; LogSelectedTopic()
;
Procedure LogSomething()
If TraceON : TraceLine$ = ("ComingFrom$ = " + ComingFrom$ + "Procedure LogSomething()") : WriteTraceLine(TraceLIne$) : EndIf
GetDate()
If d$ <> OpenPimClipName$ ; file could have been closed but Exists
PimClipName$ = (d$ + ".txt")
OpenPimClipName$ = PimClipName$
EndIf ; IF d$ <> OpenPimClipName$
;
If OpenFile(0,PimClipname$,#PB_File_Append |#PB_Ascii)
If TraceON : TraceLine$ = ("ComingFrom$ = " + ComingFrom$ + "LogSomething : OpenFile(0,PimClipname$") : WriteTraceLine(TraceLIne$) : EndIf
LogThisString$ = ("~~Misc~~" + clipstring$)
SaveClipText$ = clipstring$ ; Wait til SelectTopic Window_1 clicks then use SaveClipText$
If showTopicsCkBoxState ; if True , show Topics Window_1 , Close(0) , then just wait til next TopicBtn_clicked()
HideWindow(Window_1, #False) ; show Window_1
SetActiveWindow(Window_1)
showTopicsCkBoxState = GetGadgetState(showTopicsCkBox)
showTopicsCkBoxState2 = GetGadgetState(TopicsCkBox2)
SetGadgetColor(TopicsCkBox2, #PB_Gadget_BackColor, $C0C0C0)
;SetActiveGadget(CancelCopyBtn) ; set focus on , so user can hit Enter-Key To CancelCopy
Else
WriteStringN(0,(LogThisString$), #PB_Ascii) ; no showTopicsCkBox checked
EndIf ; If showTopicsCkBoxState
CloseFile(0)
EndIf ;If OpenFile(0,PimClipname$
ComingFrom$ = " LogSomehing() "
EndProcedure ; LogSomething()
;
Procedure CallBack(hWnd, Msg, wParam, lParam)
Protected result
Result = #PB_ProcessPureBasicEvents
Select Msg
Case #WM_DRAWCLIPBOARD
If IsClipboardFormatAvailable_(#CF_TEXT)
clipstring$=GetClipboardText()
If SpeakCkBoxState = #True : RunProgram("SpeakClipboard.bat") : EndIf
LogSomething() ; ============================================== LogSomething()
clipString$=""
EndIf
SendMessage_(ClipboardViewerNext, Msg, wParam, lParam)
Case #WM_CHANGECBCHAIN
If wParam = ClipboardViewerNext
ClipboardViewerNext = lParam
Else
SendMessage_(ClipboardViewerNext, Msg, wParam, lParam)
EndIf
EndSelect
ComingFrom$ = " CallBack "
ProcedureReturn Result
EndProcedure ; CallBack(hWnd, Msg, wParam, lParam)
Procedure CloseWindow_window_0()
If TraceON : TraceLine$ = ("ComingFrom$ = " + ComingFrom$ + "Procedure CloseWindow_window_0()") : WriteTraceLine(TraceLIne$) : EndIf
If IsSysTrayIcon(TrayIcon)
RemoveSysTrayIcon(TrayIcon)
EndIf
ChangeClipboardChain_(WindowID(Window_0), ClipboardViewerNext)
If TraceON : CloseTraceFile() : EndIf
CloseWindow(Window_1)
CloseWindow(Window_0)
EndProcedure ; CloseWindow_window_0()
;
Procedure SetupTopicButtons() ; Run once at beginning ==========
If TraceON : TraceLine$ = ("ComingFrom$ = " + ComingFrom$ + "Procedure SetupTopicButtons()") : WriteTraceLine(TraceLIne$) : EndIf
If ReadFile(0, TopicsListFile$)
TopicBtnCount = 1
Repeat
TopicBtnName$ = ReadString(0) ; if "SPEAK" Button Exists , then save Btn Number
If LCase(TopicBtnName$) = LCase("BibleSearch") : BibleSearchBtnNumber = TopicBtnCount : TopicBtnNumber = TopicBtnCount : EndIf
If LCase(TopicBtnName$) = LCase("BING") : BingSearchBtnNumber = TopicBtnCount : TopicBtnNumber = TopicBtnCount : EndIf
If LCase(TopicBtnName$) = LCase("GOOGLE") : GoogleSearchBtnNumber = TopicBtnCount : TopicBtnNumber = TopicBtnCount : EndIf
If LCase(TopicBtnName$) = LCase("SPEAK") : SpeakBtnNumber = TopicBtnCount : TopicBtnNumber = TopicBtnCount : EndIf
If LCase(TopicBtnName$) = LCase("Launch") : LaunchBtnNumber = TopicBtnCount : TopicBtnNumber = TopicBtnCount : EndIf
SetGadgetText(TopicBtnCount,TopicBtnName$)
TopicBtnCount = TopicBtnCount + 1
Until Eof(0) | TopicBtnCount > MaxBtnCount
CloseFile(0)
ComingFrom$ = " SetupTopicButtons() "
EndIf
EndProcedure ; SetupTopicButtons() ==============================
;
Procedure CreateTraceFile()
If CreateFile(2, "TraceProgram.txt", #PB_Ascii) ; we create a new text file...
; TraceON = #True
If TraceON : TraceLine$ = "Procedure CreateTraceFile()" : WriteTraceLine(TraceLIne$) : EndIf
Else
MessageRequester("Information","cannot create TraceProgram.txt file!")
EndIf
ComingFrom$ = " CreateTraceFile() "
EndProcedure ; CreateTraceFile()
; ;
Procedure WriteTraceLine(TraceLine$)
; If TraceON : TraceLine$ = "Procedure CallBack" : WriteTraceLine(TraceLIne$) : EndIf
WriteStringN(2, TraceLIne$) ; write 1 line (each with 'end of line' character)
CreateFrom$ = " WriteTraceFile "
EndProcedure ; WriteTraceLine()
;
Procedure CloseTraceFile()
If TraceON : TraceLine$ = "Procedure CloseTraceFile()" : WriteTraceLine(TraceLIne$) : EndIf
CloseFile(2)
EndProcedure ; CloseTraceFile()
;-begin-begin-begin-begin-begin-begin-begin-begin-begin-begin-begin-begin
;========================================================================
OpenWindow_0()
If IsClipboardFormatAvailable_(#CF_TEXT)
ClearClipboard()
clipString$=""
EndIf
SetWindowCallback(@callback())
ClipboardViewerNext = SetClipboardViewer_(WindowID(Window_0))
hIcon = ExtractIcon_(#Null,"shell32.dll",55)
;AddSysTrayIcon(TrayIcon, WindowID(0), hIcon)
;SysTrayIconToolTip(TrayIcon, "LeftDouble_Click to Open pimClip WIndow")
;
OpenWindow_1()
AddKeyboardShortcut(Window_1, #PB_Shortcut_Return, 9) ; Case 9
SetupTopicButtons()
;
SetGadgetState(showTopicsCkBox, #PB_Checkbox_Checked)
showTopicsCkBoxState = #True
SetGadgetState(TopicsCkBox2, #PB_Checkbox_Checked)
showTopicsCkBoxState2 = #True
If TraceON : CreateTraceFile() : EndIf
; ============================================================
;{- Event loop
Repeat
Event = WaitWindowEvent()
WindowID = EventWindow()
; ///////////////////
If Event = #PB_Event_SysTray
If EventType() = #PB_EventType_LeftDoubleClick
HideWindow(Window_0, #False)
RemoveSysTrayIcon(1)
EndIf
EndIf ; If Event = #PB_Event_SysTray
; ///////////////////
If WindowID = Window_0
Select Event
Case #PB_Event_Gadget
Select EventGadget()
Case sendToBtn ; send to Tray
HideWindow(Window_0, #True)
AddSysTrayIcon(1, WindowID(0), hIcon)
SysTrayIconToolTip(1, "LeftDouble_Click to Open pimClip WIndow")
Case exitBtn
If TraceON : CloseTraceFile() : EndIf
CloseWindow_window_0()
Event = #PB_Event_CloseWindow
Case findBtn
PimFindid = RunProgram("PimFind.exe","","",#PB_Program_Open )
Case helpBtn
RunProgram("PimClip-Help.html")
Case restartBtn
If TraceON : CloseTraceFile() : EndIf
HideWindow(window_0,1)
HideWindow(window_1,0)
;Event = #PB_Event_CloseWindow
PimClipid = RunProgram("PimClip.exe","","",#PB_Program_Open)
Case showTopicsCkBox
showTopicsCkBoxState = GetGadgetState(showTopicsCkBox)
If showTopicsCkBoxState = #True
SetGadgetState(TopicsCkBox2, #PB_Checkbox_Checked)
showTopicsCkBoxState2 = #True
Else
SetGadgetState(TopicsCkBox2, #PB_Checkbox_Unchecked)
showTopicsCkBoxState2 = #False
EndIf
SetGadgetColor(TopicsCkBox2, #PB_Gadget_BackColor, $C0C0C0)
EndSelect ; EventGadget()
; ////////////////////////
Case #PB_Event_SysTray
If EventType() = #PB_EventType_LeftDoubleClick
HideWindow(Window_0, #False)
EndIf
Case #PB_Event_CloseWindow
If TraceON : CloseTraceFile() : EndIf
CloseWindow(Window_1)
CloseWindow(Window_0)
Event = #PB_Event_CloseWindow
EndSelect ; Window_0 Event
EndIf ; If WindowID = Window_0
;==============================================================
If WindowID = Window_1
; SetActiveWindow(Window_1)
Select Event
Case #PB_Event_Menu
Select EventMenu()
Case 9
HideWindow(Window_1, #True) ; act as if CancelCopyBtn was clicked
HideWindow(Window_0, 0)
MessageRequester("Select EventMenu()", "Case = 9" )
Debug "Select EventMenu(), Case = 9"
EndSelect
Case #PB_Event_Gadget
Select EventGadget()
Case 1 To MaxBtnCount
EventGadgetNumber = EventGadget()
TopicBtn_clicked()
Case NewTopic
Select EventType()
Case #PB_EventType_Focus
; SetActiveWindow(Window_1)
; AddKeyboardShortcut(Window_1, #PB_Shortcut_Return, 1)
; Debug "Case #PB_EventType_Focus"
Case #PB_EventType_LostFocus
RemoveKeyboardShortcut(Window_1, #PB_Shortcut_Return)
EndSelect ; Select EventType()
Case CancelCopyBtn
HideWindow(Window_1, 1)
HideWindow(Window_0, 0)
Case SpeakCkBox
SpeakCkBoxState = GetGadgetState(SpeakCkBox)
If SpeakCkBoxState = #True
SetGadgetState(SpeakCkBox,#PB_Checkbox_Checked )
SpeakCkBoxState = GetGadgetState(SpeakCkBox)
Else
SetGadgetState(SpeakCkBox,#PB_Checkbox_Unchecked ) ; FindScreenBtn
SpeakCkBoxState = GetGadgetState(SpeakCkBox)
EndIf
Case FindScreenBtn
RunProgram("pimFind.exe")
Case TopicsCkBox2
showTopicsCkBoxState2 = GetGadgetState(TopicsCkBox2)
If showTopicsCkBoxState2 = #True
SetGadgetState(showTopicsCkBox, #PB_Checkbox_Checked)
showTopicsCkBoxState = #True
Else
SetGadgetState(showTopicsCkBox, #PB_Checkbox_Unchecked)
showTopicsCkBoxState = #False
EndIf
SetGadgetColor(TopicsCkBox2, #PB_Gadget_BackColor, $C0C0C0)
Case EditListBtn
RunProgram("TopicsBtnList.txt")
EndSelect ; Select EventGadget()
EndSelect ; Case #PB_Event_Menu
EndIf ; If WindowID = Window_1
Until Event = #PB_Event_CloseWindow
End
When you cancel or end any of your running external application,What you will do to Pause or Kill or resume that one ?