AutoHotkey Community

It is currently May 26th, 2012, 1:36 pm

All times are UTC [ DST ]




Post new topic Reply to topic  [ 21 posts ]  Go to page 1, 2  Next
Author Message
PostPosted: November 29th, 2008, 2:11 pm 
Offline

Joined: November 27th, 2008, 9:44 am
Posts: 62
Here's my take on a todolist app: YATL - Yet Another Todo List.

Download YATL v1.11

I wrote it mainly because I was looking for some specific things out of a todolist application that I hadn't found elsewhere.

I wanted it all to be in one script, operate as a hotkey-controlled HUD, and be completely keyboard-controlled. I tried to make the script as simple as possible, while leaving a little bit of flexibility in there for slightly more complex uses.

Run the script and you'll see the main GUI:

Image

Press Win-h to view the command list:

Image

Pressing 'n' or 'e' opens the edit field:

Image

Run through the "tutorial" - it'll just take a few minutes of toying around to learn the hotkeys. When you exit the script, YATL saves the current list in the body of the script itself, so is completely self-contained.

Please leave comments/criticism/suggestions - I'd love to improve this script specifically and my coding generally.

Download YATL v1.11


Last edited by rulfzid on December 3rd, 2008, 6:39 am, edited 4 times in total.

Report this post
Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: November 30th, 2008, 3:08 am 
Offline

Joined: November 27th, 2008, 9:44 am
Posts: 62
I cleaned up the original post, added a couple of pics, and uploaded the script to autohotkey.net.

I apologize for the self-bump - I'm just excited by what I've done and anxious to see what other people think (good, bad, or even ugly). :D

Anyway, hope somebody finds this useful and/or interesting.


Report this post
Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: November 30th, 2008, 3:11 am 
Offline

Joined: June 18th, 2008, 8:36 am
Posts: 4923
Location: AHK Forum
Thanks for sharing, looks very smart.

I have found a few bugs and changed, hope you do not mind:
Changed:
Code:
GuiClose:
ToggleMainGui:
   ToggleGui(gid, yatl_shown)
return


Help says CTRL & T = Show/Hide
It is actually CASPLOCK & T.

IfWinActive does not work that way, you need to use #IfWinActive

Here corrected version:
Code:
;==============+
; AUTO-EXECUTE |
;===============================================================================
#SingleInstance, Force
#NoEnv

; Listbox message constants
;---------------------------------------
LB_INSERTSTRING := 0x181
LB_GETCURSEL := 0x188
LB_GETTEXT := 0x189
LB_GETTEXTLEN := 0x18A
LB_SETITEMDATA := 0x19A
LB_DELETESTRING := 0x182
LB_SETCURSEL := 0x186
LB_GETCOUNT := 0x18B

; SendMessageProc - for faster DllCalls
;---------------------------------------
SendMessageProc := GetProcAddress("user32", "SendMessageA")

; Gui options
;---------------------------------------
yatl_font = Tahoma
yatl_font_size = 10
yatl_font_color = White
yatl_tabstop = 12
yatl_margin = 10
yatl_bgcolor = 222222
yatl_control_bgcolor = 333333
yatl_guiW = 400
yatl_listboxH = 300


; Create the Gui's
;---------------------------------------
createGui()
createHelpText()
createHelpGui()

; Load the saved todo lists
;---------------------------------------
LoadTodos(hList)

OnExit, SaveAndExit
return
;===============================================================================


;========================+
; AUTO-EXECUTE FUNCTIONS |
;===============================================================================
createGui() {
   global
   Gui, +lastfound -caption +alwaysontop
   gid := WinExist()
   Gui, Margin, %yatl_margin%, %yatl_margin%
   Gui, Color, %yatl_bgcolor%, %yatl_control_bgcolor%
   Gui, Font, s%yatl_font_size% c%yatl_font_color%, %yatl_font%
   Gui, Add, Text, , YET ANOTHER TODO LIST
   Gui, Font, s%yatl_font_size%
   Gui, Add, ListBox, h%yatl_listboxH% w%yatl_guiW% t%yatl_tabstop% vyatl_list HwndhList,
   Gui, Add, Edit, xp yp wp hp vyatl_help -vscroll +readonly Hidden, Help stuff
   Gui, Add, Edit, r1 w%yatl_guiW% -WantReturn Hidden vyatl_edit,
   Gui, Add, Button, Default Hidden gAddOrEditTask,
   Gui, Show, AutoSize, YATL
   yatl_shown = 1
}

createHelpGui() {
   global
   Gui, 2: +lastfound -caption +alwaysontop +owner1
   hid := WinExist()
   Gui, 2: Margin, %yatl_margin%, %yatl_margin%
   Gui, 2: Color, 555555
   2fsize := yatl_font_size - 1
   Gui, 2: Font, s%2fsize% c%yatl_font_color%, %yatl_font%
   Gui, 2: Add, Text, , YATL - Command List
   Gui, 2: Add, Text, -vscroll +readonly, %yatl_helptext%
   Gui, 2: Show, Hide AutoSize, Help
   yatl_help_shown = 0
}

createHelpText() {
   global
   yatl_helptext =
   (LTrim
   CapsLock-t`t`tHide/show YATL
   n`t`tAdd a new task
   e`t`tEdit a task
   x`t`tCheck/uncheck a task
   Ctrl-x`t`tClear all checked tasks
   Delete`t`tDelete selected task
   Right`t`tIndent selected task
   Left`t`tDedent selected task
   Shift-Up`tMove task up
   Shift-Down`tMove task down
   Ctrl-q`t`tQuit YATL
   Ctrl-h`t`tToggle help window
   Escape`t`tEscape out of things
   )
}
;===============================================================================

; Set the hotkeys
;---------------------------------------
#IfWinActive, YATL AHK_class AutoHotkeyGUI
~n::
Gosub, _AddTask
Return
~e::
Gosub, _EditTask
return
~x::
Gosub, ToggleCheckMark
Return
^x::
Gosub, ClearChecked
Return
~Del::
Gosub, DeleteSelected
Return
~Right::
Gosub, Indent
Return
~Left::
Gosub, Dedent
Return
+Up::
Gosub, MoveUp
Return
+Down::
Gosub, MoveDown
Return
^q::
Gosub, Quit
Return
^h::
GoSub, ToggleHelpGui
Return
~Up::
~Down::
      ControlSend, , {%A_ThisHotkey%}, ahk_id %hList%
return
#IfWinActive
CapsLock & t::
Gosub, ToggleMainGUI
Return
#IfWinExist, YATL AHK_class AutoHotkeyGUI
Escape::
Gosub, yatlEscape
Return
#IfWinExist
;=====================+
; SHOW/HIDE THE GUI'S |
;===============================================================================
GuiClose:
ToggleMainGui:
   ToggleGui(gid, yatl_shown)
return

ToggleHelpGui:
   GuiControlGet, focused_control, focusv
   If (focused_control = "yatl_edit")
      return
   ToggleGui(hid, yatl_help_shown)
return

ToggleGui(hWnd, ByRef isshown) {
   If isshown
   {   WinHide, ahk_id %hWnd%
      isshown = 0
   } Else {
      WinShow, ahk_id %hWnd%
      isshown = 1
   }
}
;===============================================================================


;=========================+
; HOTKEYS AND SUBROUTINES |
;===============================================================================
_AddTask:
   GuiControlGet, focused_control, focusv
   If (focused_control != "yatl_list")
      return
   yatl_action := "add"
   GuiControl, Show, yatl_edit   
   Gui, Show, Autosize
   GuiControl, Focus, yatl_edit
return

_EditTask:
   GuiControlGet, focused_control, focusv
   If (focused_control != "yatl_list")
      return
   yatl_action := "edit"
   Gui, Submit, NoHide
   RegExMatch(yatl_list, "(\s*\[.\] )(.*)", yedit)
   Guicontrol, , yatl_edit, %yedit2%
   GuiControl, Show, yatl_edit   
   Gui, Show, Autosize
   GuiControl, Focus, yatl_edit
return

AddOrEditTask:
   Gui, Submit, NoHide
   If not yatl_edit
      return
   If (yatl_action = "add")
   {   yatl_edit := "[ ] " . yatl_edit
      i := GetCurrentSelection(hList)
      i := (i >= 0) ? i + 1 : i
      LB_InsertString(hList, i, yatl_edit)
   }
   If (yatl_action = "edit")
   {   yatl_edit := yedit1 . yatl_edit
      i := GetCurrentSelection(hList)
      LB_ReplaceString(hList, i, yatl_edit)
   }
   GuiControl, Hide, yatl_edit
   GuiControl, , yatl_edit,
   Gui, Show, Autosize
return

ToggleCheckMark:
   GuiControlGet, focused_control, focusv
   If (focused_control != "yatl_list")
      return   
   i := GetCurrentSelection(hList)
   If (i < 0)
      return
   Gui, Submit, NoHide
   replaceStr := RegExReplace(yatl_list, "(\s*\[) (\])", "$1x$2", cnt)
   If not cnt
      replaceStr := RegExReplace(yatl_list, "(\s*\[)x(\])", "$1 $2")
   LB_ReplaceString(hList, i, replaceStr)
return

ClearChecked:
   deletelist := ""
   cnt := LB_GetCount(hList)
   Loop, % cnt
      If RegExmatch(LB_GetString(hList, A_Index - 1), "\s*\[x\]")
         deletelist .= (A_Index - 1) ","
   StringTrimRight, deletelist, deletelist, 1
   Sort, deletelist, D`, R
   Loop, parse, deletelist, `,
   {
      LB_DeleteString(hList, A_LoopField)
      If (A_LoopField >= LB_GetCount(hList))
         LB_SelectThis(hList, A_LoopField - 1)
   }
return

DeleteSelected:
   GuiControlGet, focused_control, focusv
   If (focused_control != "yatl_list")
      return   
   i := GetCurrentSelection(hList)
   If (i < 0)
      return
   LB_DeleteString(hList, i)
   cnt := LB_GetCount(hList)
   If (i >= cnt)
      LB_SelectThis(hList, i - 1)

return

Indent:
Dedent:
   GuiControlGet, focused_control, focusv
   If (focused_control != "yatl_list")
      return
   i := GetCurrentSelection(hList)
   If (i < 0)
      return
   Gui, Submit, NoHide
   If (A_ThisLabel = "Indent")
      replaceStr := "`t" . yatl_list
   If (A_ThisLabel = "Dedent")
      replaceStr := (Substr(yatl_list, 1, 1) = "`t") ? Substr(yatl_list, 2) : yatl_list
   LB_ReplaceString(hList, i, replaceStr)
return

MoveUp:
MoveDown:
   GuiControlGet, focused_control, focusv
   If (focused_control != "yatl_list")
      return
   i := GetCurrentSelection(hList)
   If (i < 0)
      return   
   j := (A_ThisLabel = "MoveUp") ? i - 1 : i + 1
   LB_SwapMove(hList, i, j)
return



yatlEscape:
   GuiControlGet, editisvisible, Visible, yatl_edit
   If editisvisible
   {   GuiControl, Hide, yatl_edit
      Gui, Show, Autosize
   }
   Else If yatl_help_shown
      Gosub, ToggleHelpGui
   Else
   {   WinHide, ahk_id %gid%
      WinActivate, ahk_id %curractive%
        shown := 0
   }
return

Quit:
   ExitApp
return

SaveAndExit:
   SaveToDos(hList)
   ExitApp
Return
;===============================================================================


;=====================+
; SAVE/LOAD FUNCTIONS |
;===============================================================================
SaveToDos(hWnd) {
   cnt := LB_GetCount(hWnd)
   Loop, % cnt
      todos .= LB_GetString(hWnd, A_Index - 1) . "`n"
   StringTrimRight, todos, todos, 1
   Loop, Read, %A_ScriptFullPath%
   {   thisscript .= A_LoopReadLine . "`n"
      If InStr(A_LoopReadLine, "Saved YATL List") and not Instr(A_LoopReadLine, "InStr")
         break
   }
   FileDelete, %A_ScriptFullPath%
   FileAppend, %thisscript%%todos%, %A_ScriptFullPath%   
}

LoadToDos(hWnd) {
   istodo = 0
   Loop, Read, %A_ScriptFullPath%
   {   If istodo
      {   If A_LoopReadline
            todos .= A_LoopReadLine . "`n"
         continue
      }
      If InStr(A_LoopReadLine, "Saved YATL List") and not Instr(A_LoopReadLine, "InStr")
         istodo = 1
   }
   StringTrimRight, todos, todos, 1
   Loop, Parse, Todos, `n
      LB_InsertString(hWnd, -1, A_LoopField)     
}
;===============================================================================


;===========================+
; DLLCALL WRAPPER FUNCTIONS |
;===============================================================================
GetProcAddress(dll, funcname) {
   return DllCall("GetProcAddress", UInt, DllCall("GetModuleHandle", Str, dll) ,Str, funcname)
}

GetCurrentSelection(hWnd) {
   global SendMessageProc
   global LB_GETCURSEL
   Return DllCall(SendMessageProc, UInt, hWnd, UInt, LB_GETCURSEL, UInt, 0, UInt, 0)
}

LB_SwapMove(hWnd, from_index, to_index) {
   global SendMessageProc
   global LB_GETTEXTLEN, LB_GETTEXT, LB_DELETESTRING, LB_INSERTSTRING, LB_SETCURSEL
   If (DllCall(SendMessageProc, UInt, hWnd, UInt, LB_GETTEXTLEN, UInt, j, UInt, 0) < 0)
      return
   lo := (from_index < to_index) ? from_index : to_index
   len := DllCall(SendMessageProc, UInt, hWnd, UInt, LB_GETTEXTLEN, UInt, lo, UInt, 0)
   VarSetCapacity(tmp, len)
   DllCall(SendMessageProc, UInt, hWnd, UInt, LB_GETTEXT, UInt, lo, UInt, &tmp)
   DllCall(SendMessageProc, UInt, hWnd, UInt, LB_DELETESTRING, UInt, lo, UInt, 0)
   DllCall(SendMessageProc, UInt, hWnd, UInt, LB_INSERTSTRING, UInt, lo + 1, UInt, &tmp)
   DllCall(SendMessageProc, UInt, hWnd, UInt, LB_SETCURSEL, UInt, to_index, UInt, 0)
}

LB_InsertString(hWnd, index, string) {
   global SendMessageProc
   global LB_INSERTSTRING, LB_SETCURSEL   
   i := DllCall(SendMessageProc, UInt, hWnd, UInt, LB_INSERTSTRING, UInt, index, UInt, &string)
   Sleep, -1
   DllCall(SendMessageProc, UInt, hWnd, UInt, LB_SETCURSEL, UInt, i, UInt, 0)
   Return i
}

LB_ReplaceString(hWnd, index, string) {
   global SendMessageProc
   global LB_DELETESTRING
   DllCall(SendMessageProc, UInt, hWnd, UInt, LB_DELETESTRING, UInt, index, UInt, 0)
   LB_InsertString(hWnd, index, string)
}

LB_DeleteString(hWnd, index) {
   global SendMessageProc
   global LB_DELETESTRING
   DllCall(SendMessageProc, UInt, hWnd, UInt, LB_DELETESTRING, UInt, index, UInt, 0)
}

LB_GetString(hWnd, index) {
   global SendMessageProc
   global LB_GETTEXTLEN, LB_GETTEXT
   len := DllCall(SendMessageProc, UInt, hWnd, UInt, LB_GETTEXTLEN, UInt, index, UInt, 0)
   VarSetCapacity(tmp, len)
   DllCall(SendMessageProc, UInt, hWnd, UInt, LB_GETTEXT, UInt, index, UInt, &tmp)
   return tmp
}

LB_GetCount(hWnd) {
   global SendMessageProc
   global LB_GETCOUNT
   return DllCall(SendMessageProc, UInt, hWnd, UInt, LB_GETCOUNT, UInt, 0, UInt, 0)
}

LB_SelectThis(hWnd, index) {
   global SendMessageProc
   global LB_SETCURSEL
   DllCall(SendMessageProc, UInt, hWnd, UInt, LB_SETCURSEL, UInt, index, UInt, 0)
}
;===============================================================================


/*******************************************************************************
/*************** DO NOT MODIFY BELOW THIS LINE: Saved YATL List ****************
[ ] Press Ctrl-h for help
[ ] Press "Delete" to remove the selected task

_________________
AHK_H (2alpha) AHF TT _Struct WatchDir Yaml _Input ObjTree RapidHotkey DynaRun :wink:


Report this post
Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: November 30th, 2008, 3:35 am 
Offline

Joined: November 27th, 2008, 9:44 am
Posts: 62
Thanks for your response. I noticed the capslock/ctrl thing earlier and fixed it.

Quote:
IfWinActive does not work that way, you need to use #IfWinActive


Actually, it does if you set hotkeys with the Hotkey command:

Quote:
Remarks About Hotkey, IfWinXX [, WinTitle, WinText]

The "Hotkey IfWin" commands allow context-sensitive hotkeys to be created and modified while the script is running (by contrast, the #IfWinActive/Exist directives are positional and take effect before the script begins executing). For example:

Hotkey, IfWinActive, ahk_class Notepad
Hotkey, ^!e, MyLabel ; Creates a hotkey that works only in Notepad.

Using "Hotkey IfWin" puts context sensitivity into effect for all subsequently created or modified hotkeys. In addition, each IfWin sub-command is mutually exclusive; that is, only the most recent one will be in effect.

To turn off context sensitivity (that is, to make subsequently-created hotkeys work in all windows), specify any IfWin sub-command but omit the WinTitle/Text parameters. For example: Hotkey, IfWinActive

If "Hotkey IfWin" is never used by a script, the bottommost use of the #IfWin directive (if any) will be in effect for the Hotkey command.

When a mouse or keyboard hotkey is disabled via IfWin, it performs its native function; that is, it passes through to the active window as though there is no such hotkey. There are two exceptions: 1) Windows 95/98/Me: pressing an IfWin-disabled hotkey has no effect (not even its native function); and 2) Joystick hotkeys: although IfWin works, it never prevents other programs from seeing the press of a button.


Can you explain why you added the GuiClose? I figured that making the Gui captionless would mean that that label would never get launched.


Report this post
Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: November 30th, 2008, 1:53 pm 
Offline

Joined: June 18th, 2008, 8:36 am
Posts: 4923
Location: AHK Forum
GuiClose:
When you press ALT & F4, you will need to press CAPSLOCK & T twice.

HotKey, IfWinActive
This will assign the hotkey but not remove it when YALT is not active, do your hotkeys work in other windows when YALT is hidden? For me not.

_________________
AHK_H (2alpha) AHF TT _Struct WatchDir Yaml _Input ObjTree RapidHotkey DynaRun :wink:


Report this post
Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: November 30th, 2008, 2:31 pm 
Offline

Joined: November 27th, 2008, 9:44 am
Posts: 62
HotKeyIt wrote:
GuiClose:
When you press ALT & F4, you will need to press CAPSLOCK & T twice.


Hm. It might just be me, but I'd rather have Alt-F4 completely exit the program, which it does now, and leave the toggling of the GUI to Ctrl-t. (I changed it to Control from Capslock)

HotKeyIt wrote:
HotKey, IfWinActive
This will assign the hotkey but not remove it when YALT is not active, do your hotkeys work in other windows when YALT is hidden? For me not.


I don't want the hotkeys to work in other windows when YATL is hidden. That was intentional - the only hotkey that should work when YATL is hidden is the "Ctrl-t" to show the gui. The adding, editing, moving of tasks stuff should all only happen when the YATL gui is active - that way YATL doesn't interfere with the other programs I have running.


Report this post
Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: December 1st, 2008, 7:02 pm 
Offline

Joined: June 18th, 2008, 8:36 am
Posts: 4923
Location: AHK Forum
rulfzid wrote:

Hm. It might just be me, but I'd rather have Alt-F4 completely exit the program, which it does now, and leave the toggling of the GUI to Ctrl-t. (I changed it to Control from Capslock)


Your posted version does not exit when I press ALT & F4.

rulfzid wrote:
I don't want the hotkeys to work in other windows when YATL is hidden. That was intentional - the only hotkey that should work when YATL is hidden is the "Ctrl-t" to show the gui. The adding, editing, moving of tasks stuff should all only happen when the YATL gui is active - that way YATL doesn't interfere with the other programs I have running.


In your posted version, your hotkeys overwrite all those hotkeys in other windows, so they do not work in other windows!

This is because you are missing comma after IfWinActive/IfWinExist and you better add the ahk_class AutoHotkeyGUI to make sure it is your window:

Code:
Hotkey, IfWinActive, YATL AHK_class AutoHotkeyGUI
Hotkey, ~n,      _AddTask
Hotkey, ~e,      _EditTask
Hotkey, ~x,      ToggleCheckMark
Hotkey, ^x,      ClearChecked
Hotkey, ~Del,   DeleteSelected
Hotkey, ~Right, Indent
Hotkey, ~Left,   Dedent
Hotkey, +Up,   MoveUp
Hotkey, +Down,   MoveDown
Hotkey, ^q,      Quit
Hotkey, IfWinExist, YATL AHK_class AutoHotkeyGUI
Hotkey, ^h,      ToggleHelpGui
Hotkey, Escape, yatlEscape
Hotkey, IfWinActive
Hotkey, ^t, ToggleMainGUI

_________________
AHK_H (2alpha) AHF TT _Struct WatchDir Yaml _Input ObjTree RapidHotkey DynaRun :wink:


Report this post
Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: December 1st, 2008, 8:12 pm 
Offline

Joined: November 27th, 2008, 9:44 am
Posts: 62
HotKeyIt wrote:
Your posted version does not exit when I press ALT & F4.

...

In your posted version, your hotkeys overwrite all those hotkeys in other windows, so they do not work in other windows!

This is because you are missing comma after IfWinActive/IfWinExist and you better add the ahk_class AutoHotkeyGUI to make sure it is your window:


You're absolute right. I've posted an update (a very minor one) that quits on GuiClose and adds your fix to the hotkeys. I also changed the hotkey modifier from "Ctrl" to "Win" - mostly because I use ctrl-t quite often to open new tabs in firefox. The helptext and "tutorial" have been changed accordingly.

YATL v1.01


Report this post
Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: December 1st, 2008, 9:40 pm 
Offline

Joined: June 25th, 2008, 2:31 pm
Posts: 25
Nice and simple.

The only thing I'd want is sub-tree folding.


Report this post
Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: December 1st, 2008, 10:00 pm 
Offline

Joined: June 18th, 2008, 8:36 am
Posts: 4923
Location: AHK Forum
joemoeschmoe wrote:
Nice and simple.

The only thing I'd want is sub-tree folding.

Agreed.

_________________
AHK_H (2alpha) AHF TT _Struct WatchDir Yaml _Input ObjTree RapidHotkey DynaRun :wink:


Report this post
Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: December 1st, 2008, 10:03 pm 
Offline

Joined: November 27th, 2008, 9:44 am
Posts: 62
joemoeschmoe wrote:
Nice and simple.

The only thing I'd want is sub-tree folding.


I was thinking about that today.

I intentionally made the script unaware of any tree structure: (1) because it's a listbox that is only simulating a treeview and (2) because I really wanted to keep it stupid-simple and (3) I liked the idea of having the list managed from within the script itself.

However, after thinking about it more, it seems that it would be nice to:
  • manage multiple lists separately (i.e. your sub-tree folding suggestion)
  • have task completion tracking/logging


This will mean the script will have to create/edit files (which I was trying to avoid), but I suppose that's not that big a deal.

Thanks for checking it out!


Report this post
Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: December 2nd, 2008, 3:23 am 
Offline

Joined: November 27th, 2008, 9:44 am
Posts: 62
YATL Update - Version 1.1

Another update - fixed a couple of bugs, added a new feature.
  • Now, when you press 'x' to check off a list, it does a flash/fadeout effect. I think it looks pretty neat - let me know what you think.
  • I also removed the "clear checked" feature, because the above "check off and remove" behavior is the link to the next set of things involving logging and very simple project tracking. I just wanted to post this because I thought it looked pretty cool (and it was interesting to implement)
  • Fixed a bug where moving an item above the top of the listbox or past then end caused strange behavior (index-out-of-range stuff).
  • Fixed a bug where pressing the main Gui toggle when the help window was open left the help window stranded in the "alwaysontop but captionless" ether.
  • Changed the moveup/movedown hotkeys to Win-Up and Win-Down, to be consistent with the rest of the script.
  • Updated the initial post with d/l links and new pics that reflect the changes made.


Report this post
Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: December 2nd, 2008, 6:37 am 
Offline

Joined: June 18th, 2008, 8:36 am
Posts: 4923
Location: AHK Forum
rulfzid wrote:
Now, when you press 'x' to check off a list, it does a flash/fadeout effect. I think it looks pretty neat - let me know what you think.

Fade out effect looks good, but the item is deleted straight away.
I think keeping a checked item until you delete all checked or selected using Win & x should be kept!

Also would be good to have an ini file where your to do list is backed up.
If you like to avoid using a file, you can save them into the script using IniWrite/IniRead.

_________________
AHK_H (2alpha) AHF TT _Struct WatchDir Yaml _Input ObjTree RapidHotkey DynaRun :wink:


Report this post
Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: December 2nd, 2008, 9:50 am 
Offline

Joined: November 27th, 2008, 9:44 am
Posts: 62
HotKeyIt wrote:
Fade out effect looks good, but the item is deleted straight away.
I think keeping a checked item until you delete all checked or selected using Win & x should be kept!

Also would be good to have an ini file where your to do list is backed up.
If you like to avoid using a file, you can save them into the script using IniWrite/IniRead.


Currently, your list is saved in the script itself (all the way at the bottom). I'm going to add some logging features to track and group tasks - I just really liked the fadeout effect and wanted to show it off. More to come soon...


Report this post
Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: December 3rd, 2008, 1:25 am 
Offline

Joined: June 3rd, 2008, 7:34 pm
Posts: 86
Location: Italy
Nice script man!

Found a bug: when the list is empty, if you type "e" it creates a task without the [].

_________________
All my scripts/snippets are released under the WTFPL: http://sam.zoy.org/wtfpl/COPYING


Report this post
Top
 Profile  
Reply with quote  
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 21 posts ]  Go to page 1, 2  Next

All times are UTC [ DST ]


Who is online

Users browsing this forum: Yahoo [Bot] and 15 guests


You can post new topics in this forum
You can reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Powered by phpBB® Forum Software © phpBB Group