AutoHotkey Community

It is currently May 27th, 2012, 12:28 pm

All times are UTC [ DST ]




Post new topic Reply to topic  [ 2 posts ] 
Author Message
 Post subject: ToDo
PostPosted: January 27th, 2009, 1:43 pm 
Offline

Joined: January 27th, 2009, 1:15 pm
Posts: 1
Yet another ToDo-List.

Some code borrowed from different parts of the forum. Can't remember them all now.
TXT.ahk from: http://www.autohotkey.com/forum/viewtopic.php?t=32757
Some modifications to the code there..

It was written to work on my system. To be out of the way yet easy to look at. So it sits nicely docked in my start menu.
There are probably a lot of setups where it won't work as intended and I'm not at all satisfied with the code.. It just doesn't feel right.. There's probably a lot of room for improvement.

Anyways:

slt.ahk
Code:
#SingleInstance force
#NoEnv
DetectHiddenWindows, on

inifile = %A_ScriptDir%\slt.ini
IniRead, database, %inifile%, settings, database
; from inifile
IniRead, LV_Height, %inifile%, settings, LV_Height
IniRead, DockedH, %inifile%, settings, DockedH
IniRead, UseHdr, %inifile%, settings, UseHdr
   If UseHdr = 1
      CUseHdr = +
   If UseHdr = 0
      UseHdr = -
IniRead, HeaderText, %inifile%, settings, HeaderText
IniRead, Appearance, %inifile%, settings, Appearance

IniRead, hotkey, %inifile%, settings, hotkey
Hotkey, %hotkey%, QuickAdd

ProgName = [slt]

; Menu
Menu, Status_Menu, Add, New, MenuHandler
Menu, Status_Menu, Add, Active, MenuHandler
Menu, Status_Menu, Add, Urgent, MenuHandler
Menu, Status_Menu, Add, Waiting, MenuHandler
Menu, Status_Menu, Add, Done, MenuHandler
Menu, TD_Menu, Add, Status, :Status_Menu
Menu, Action_Menu, Add, Add Entry, MenuHandler
Menu, Action_Menu, Add, View Details, MenuHandler
Menu, Action_Menu, Add, Delete, MenuHandler
Menu, TD_Menu, Add, Action, :Action_Menu
Menu, Sort_Menu, Add, Timestamp, MenuHandler
Menu, Sort_Menu, Add, Status, MenuHandler
Menu, TD_Menu, Add, Sort by, :Sort_Menu
Menu, TD_Menu, Add,
Menu, Appearance_Menu, Add, Docked to taskbar, MenuHandler
Menu, Appearance_Menu, Add, Docked to desktop, MenuHandler
Menu, Appearance_Menu, Add, Normal, MenuHandler
Menu, Appearance_Menu, Add, Always on top, MenuHandler
Menu, TD_Menu, Add, Apperance, :Appearance_Menu
Menu, Maintenance_Menu, Add, Archive, MenuHandler
Menu, Maintenance_Menu, Add, View Archived, MenuHandler
Menu, Maintenance_Menu, Add, Delete All, MenuHandler
Menu, TD_Menu, Add, Maintenance, :Maintenance_Menu
Menu, TD_Menu, Add,
Menu, TD_Menu, Add, Settings, MenuHandler
Menu, TD_Menu, Add,
Menu, TD_Menu, Add, Exit, MenuHandler
; ****

If Appearance = 1
   Menu, Appearance_Menu, Check, Docked to taskbar
If Appearance = 2
   Menu, Appearance_Menu, Check, Docked to desktop
If Appearance = 3
   Menu, Appearance_Menu, Check, Normal
If Appearance = 4
   Menu, Appearance_MEnu, Check, Always on top

If (Appearance = 1) {
   set_Caption = -
   ; Get the dimensions from the StartMenu and SysTray
   WinGetPos,,,StartMenu_Width,, ahk_class Shell_TrayWnd
   ControlGetPos,,SysTray_Y,,,ToolbarWindow321, ahk_class Shell_TrayWnd
   LV_Width := StartMenu_Width-16
   Gui, +MinSize%LV_Width%x ; Set so we can't make width smaller than the StartMenu
   Win_Y := SysTray_Y-(DockedH+14)
   Win_X = 0
   LV_Height = %DockedH%
}
Else If (Appearance=4) {
   set_Caption = +
   IniRead, LV_Width, %A_ScriptDir%\slt.ini, settings, LV_Width
   IniRead, Win_X, %A_ScriptDir%\slt.ini, settings, Win_X
   IniRead, Win_Y, %A_ScriptDir%\slt.ini, settings, Win_Y
   WinSettings = +AlwaysOnTop
}
Else {
   set_Caption = +
   IniRead, LV_Width, %A_ScriptDir%\slt.ini, settings, LV_Width
   IniRead, Win_X, %A_ScriptDir%\slt.ini, settings, Win_X
   IniRead, Win_Y, %A_ScriptDir%\slt.ini, settings, Win_Y
}

; Caption, depending on startmenu or desktop
Gui, %set_Caption%Caption +Resize +LastFound %WinSettings%
Gui, Margin, 0, 0

gui_hwnd:=WinExist() ; ahk_id

Gui, Add, ListView, w%LV_Width% h%LV_Height% Grid -ReadOnly %UseHdr%Hdr gLV_Event AltSubmit vTD_List, %HeaderText%|Body|Status|TimeStamp
   LV_ModifyCol(1, "NoSort")
   LV_ModifyCol(2, 0)
   LV_ModifyCol(3, 0)
   LV_ModifyCol(3, "Integer")
   LV_ModifyCol(4, 0)
   LV_ModifyCol(4, "Integer")
   ImageListID := IL_Create(5)  ; Create an ImageList to hold 3 small icons.
   IL_Add(ImageListID, "icons\1.png")
   IL_Add(ImageListID, "icons\2.png")
   IL_Add(ImageListID, "icons\3.png")
   IL_Add(ImageListID, "icons\4.png")
   IL_Add(ImageListID, "icons\5.png")
   LV_SetImageList(ImageListID)

; dock in startmenu or desktop


If (Appearance = 1) {
   hw_startmenu := DllCall( "FindWindowEx", "uint", 0, "uint", 0, "str", "Shell_TrayWnd", "uint", 0 )
   DllCall( "SetParent", "uint", gui_hwnd, "uint", hw_startmenu )
}
Else If (Appearance=2) {
   hw_desktop := DllCall( "FindWindowEx", "uint", 0, "uint", 0, "str", "Progman", "uint", 0 )
   DllCall( "SetParent", "uint", gui_hwnd, "uint", hw_desktop )
}

Gui, Show, x%Win_X% y%Win_Y% w%LV_Width%, %ProgName% - [simple lite todo]

LoadDB(database)
Return

LoadDB(database, SortBy="Timestamp")
{
   Gui 1:Default
   LV_Delete()
   Loop, Read, %database%
   {
      StringSplit, DBRow, A_LoopReadLine, |
      LV_Add("Icon" . DBRow3,DBRow1,DBRow2,DBRow3, DBRow4)
   }
   If SortBy = Status
      LV_ModifyCol(3, "Sort")
}

GetDbRow(database, SearchText) {
   Loop, Read, %database%
   {
      IfInString, A_LoopReadLine, %SearchText%
         FocusedDbRow = %A_Index%
   }
   return FocusedDbRow
}

SaveWinPos(Appearance, hwnd, inifile) {
   WinGetPos, Self_X, Self_Y, Self_W, Self_H, ahk_id %hwnd%
   If (Appearance = 1) {
      IniWrite, %Self_H%, %inifile%, settings, DockedH
   }
   Else {
      IniWrite, %Self_X%, %inifile%, settings, Win_X
      IniWrite, %Self_Y%, %inifile%, settings, Win_Y
      IniWrite, %Self_W%, %inifile%, settings, LV_Width
      IniWrite, %Self_H%, %inifile%, settings, LV_Height
   }
}

;Resize Col to remove scrollbars
RemoveVSCROLL(gui_hwnd, Appearance, NewWidth, LV_Width) {
   ControlGet, Control_Style, Style,, SysListView321, ahk_id %gui_hwnd%
   Gui ListView, TD_List
   If (Control_Style & 0x200000)  ; 0x200000 is WS_VSCROLL
      If (Appearance != 1)
         LV_ModifyCol(1, NewWidth-20)
      Else
         LV_ModifyCol(1, LV_Width-20)
   Else
      If (Appearance != 1)
         LV_ModifyCol(1, NewWidth-4)
      Else
         LV_ModifyCol(1, LV_Width-4)
}

GuiContextMenu:  ; Launched in response to a right-click or press of the Apps key.
if A_GuiControl <> TD_List
    return
FocusedRowNumber = %A_EventInfo%
LV_GetText(LV_TimeStamp, FocusedRowNumber,4)
LV_GetText(LV_Status, FocusedRowNumber,3)
SelectedDbRow := GetDbRow(database, LV_TimeStamp)
If LV_Status = 1
{
   Menu, Status_Menu, Check, New
   Menu, Status_Menu, UnCheck, Active
   Menu, Status_Menu, UnCheck, Urgent
   Menu, Status_Menu, UnCheck, Waiting
   Menu, Status_Menu, UnCheck, Done
}
If LV_Status = 2
{
   Menu, Status_Menu, Check, Active
   Menu, Status_Menu, UnCheck, New
   Menu, Status_Menu, UnCheck, Urgent
   Menu, Status_Menu, UnCheck, Waiting
   Menu, Status_Menu, UnCheck, Done
}
If LV_Status = 3
{
   Menu, Status_Menu, Check, Urgent
   Menu, Status_Menu, UnCheck, New
   Menu, Status_Menu, UnCheck, Active
   Menu, Status_Menu, UnCheck, Waiting
   Menu, Status_Menu, UnCheck, Done
}
If LV_Status = 4
{
   Menu, Status_Menu, Check, Waiting
   Menu, Status_Menu, UnCheck, New
   Menu, Status_Menu, UnCheck, Active
   Menu, Status_Menu, UnCheck, Urgent
   Menu, Status_Menu, UnCheck, Done
}
If LV_Status = 5
{
   Menu, Status_Menu, Check, Done
   Menu, Status_Menu, UnCheck, New
   Menu, Status_Menu, UnCheck, Active
   Menu, Status_Menu, UnCheck, Urgent
   Menu, Status_Menu, UnCheck, Waiting
}
Menu, TD_Menu, Show, %A_GuiX%, %A_GuiY%
return

MenuHandler:
If (A_ThisMenuItem = "Settings") {
   Gui 3:Default
   If UseHdr = +
      CB_UseHdr = 1
   If UseHdr = -
      CB_UseHdr = 0
   Gui 3:Add, CheckBox, vSetUseHdr Checked%CB_UseHdr%, Show header?
   Gui 3:Add, Text,, Hotkey for quick add:
   Gui 3:Add, Edit, w300 vSetHotkey, %hotkey%
   Gui 3:Add, Button, x270, Save
   Gui 3:Show,, %ProgName% -  Settings
}
If A_ThisMenuItem = New
   TXT_SetCSV("!" . database, SelectedDbRow, 3, 1, "|")
If A_ThisMenuItem = Active
   TXT_SetCSV("!" . database, SelectedDbRow, 3, 2, "|")
If A_ThisMenuItem = Urgent
   TXT_SetCSV("!" . database, SelectedDbRow, 3, 3, "|")
If A_ThisMenuItem = Waiting
   TXT_SetCSV("!" . database, SelectedDbRow, 3, 4, "|")
If A_ThisMenuItem = Done
   TXT_SetCSV("!" . database, SelectedDbRow, 3, 5, "|")
If A_ThisMenuItem = Add Entry
   Goto, QuickAdd
If A_ThisMenuItem = View Details
{
   Menu_Details = 1
   Goto LV_event
}
If A_ThisMenuItem = Exit
   Goto GuiClose
If A_ThisMenuItem = Delete
   TXT_RemoveLines("!" . Database, SelectedDbRow, SelectedDbRow)
If A_ThisMenuItem = Archive
{
   Loop, Read, %database%, archive.slt
   {
      StringSplit, SplitLine, A_LoopReadLine, |
      Status = %SplitLine3%
      If Status = 5
         FileAppend, %A_LoopReadLine%`n
      Else
         Saved .= A_LoopReadLine "`n"
   }
   FileDelete, %database%
   FileAppend, %Saved%, %database%
}
If A_ThisMenuItem = Delete All
   FileDelete, %database%
If A_ThisMenuItem = View Archived
{
   Gui 5:Default
   Gui 5: Margin, 0, 0
   Gui 5:Add, ListView, x0 y0 w%LV_Width% h%LV_Height% Grid %UseHdr%Hdr gArchived_Event AltSubmit vArchive_List, %HeaderText%|Body
   LV_ModifyCol(1, LV_Width-4)
   LV_ModifyCol(2, 0)
   LV_ModifyCol(3, 0)
   LV_ModifyCol(3, "Integer")
   LV_ModifyCol(4, 0)
   LV_ModifyCol(4, "Integer")
   LV_Delete()
   Loop, Read, %A_ScriptDir%\archive.slt
   {
      StringSplit, DBRow, A_LoopReadLine, |
      LV_Add("Icon" . DBRow3,DBRow1,DBRow2)
   }
   Gui 5:Show, AutoSize, %ProgName% - Archive
}
If A_ThisMenuItem = Timestamp
   SortBy = Timestamp
If A_ThisMenuItem = Status
   SortBy = Status
If A_ThisMenuItem = Docked to taskbar
{
   IniWrite, 1, %inifile%, settings, Appearance
   SaveWinPos(Appearance, gui_hwnd, inifile)
   Reload
}
If A_ThisMenuItem = Docked to desktop
{
   IniWrite, 2, %inifile%, settings, Appearance
   SaveWinPos(Appearance, gui_hwnd, inifile)
   Reload
}
If A_ThisMenuItem = Normal
{
   IniWrite, 3, %inifile%, settings, Appearance
   SaveWinPos(Appearance, gui_hwnd, inifile)
   Reload
}
If A_ThisMenuItem = Always on top
{
   IniWrite, 4, %inifile%, settings, Appearance
   SaveWinPos(Appearance, gui_hwnd, inifile)
   Reload
}
LoadDB(database, SortBy)
Return

QuickAdd:
   Gui 2:Default
   Gui 2:+ToolWindow
   Gui 2:Add, Edit, w300 vQA_Header,
   Gui 2:Add, Edit, Hidden w300 h200 vQA_Body,
   Gui 2:Add, Button, Hidden Default x270 vQA_Save, Save   
   Gui 2:Show, AutoSize, %ProgName% - Quick Add
   Input, var,V,{TAB}
   IfWinActive %ProgName% - Quick Add
   {
      GuiControl, 2:Show, QA_Body
      GuiControl, 2:Show, QA_Save
      Gui 2:Show, AutoSize, %ProgName% - Quick Add
      Send, {TAB}
   }
return

Archived_event:
if (A_GuiEvent = "DoubleClick") {
   FocusedRowNumber := LV_GetNext(0, "F")  ; Find the focused row.
   if not FocusedRowNumber  ; No row is focused.
      return
   {
      Gui 6:Destroy
      LV_GetText(LV_Header, FocusedRowNumber,1)
      LV_GetText(LV_Body, FocusedRowNumber,2)
      StringReplace, LV_Body, LV_Body, :NL:, `n, A
      Gui 6:Add, Edit, w310 -Wrap R1 vHeader, %LV_Header%
      Gui 6:Add, Edit, xs R10 w310 vBody, %LV_Body%
      Gui 6:+ToolWindow
      Gui 6:Show, AutoSize, %ProgName% - Archive Details
   }
}
Return

LV_event:
if ((A_GuiEvent = "DoubleClick") OR (Menu_Details=1)) {
   FocusedRowNumber := LV_GetNext(0, "F")  ; Find the focused row.
   if not FocusedRowNumber  ; No row is focused.
      return
   {
      Gui 4:Destroy
      LV_GetText(LV_Header, FocusedRowNumber,1)
      LV_GetText(LV_Body, FocusedRowNumber,2)
      LV_GetText(LV_Status, FocusedRowNumber,3)
      LV_GetText(LV_TimeStamp, FocusedRowNumber,4)
      StringReplace, LV_Body, LV_Body, :NL:, `n, A
      Gui 4:Add, Edit, w230 -Wrap R1 vHeader, %LV_Header%
      Gui 4:Add, DropDownList, ys  w70 Choose%LV_Status% vStatus, New|Active|Urgent|Waiting|Done
      Gui 4:Add, Edit, xs R10 w310 vBody, %LV_Body%
      Gui 4:Add, Button, xs x285, Save
      Gui 4:+ToolWindow
      Gui 4:Show, AutoSize, %ProgName% - Edit Details
      Menu_Details=0
   }
}
if (A_GuiEvent == "e") {
   FocusedRowNumber := LV_GetNext(0, "F")  ; Find the focused row.
   if not FocusedRowNumber  ; No row is focused.
      return
   {
      LV_GetText(LV_Text, FocusedRowNumber,1)
      LV_GetText(LV_TimeStamp, FocusedRowNumber,4)
      SelectedDbRow := GetDbRow(database, LV_TimeStamp)
      TXT_SetCSV("!" . database, SelectedDbRow, 1, LV_Text, "|")
   }
}
if (A_GuiEvent = "ColClick") {
   Gui 7:Default
   Gui 7:+ToolWindow
   Gui 7:Margin, 0, 0
   Gui 7:Add, Edit, w150 vNewHeader,
   Gui 7:Add, Button, Hidden Default, Save
   Gui 7:Show, AutoSize, %ProgName% -  New Header
}
Return

; Quick Add
2ButtonSave:
   Gui 2:Submit
   Input
   StringReplace, QA_Body, QA_Body, `n, :NL:, A
   IfExist %database%
   {
      FileReadLine, FirstLine, %database%, 1
      If FirstLine
         FileAppend, `n%QA_Header%|%QA_Body%|1|%A_Now%, %database%
      Else
         FileAppend, %QA_Header%|%QA_Body%|1|%A_Now%, %database%
   }
   Else
      FileAppend, %QA_Header%|%QA_Body%|1|%A_Now%, %database%
   LoadDB(database)
   ;Resize Col to remove scrollbars
   RemoveVSCROLL(gui_hwnd, Appearance, NewWidth, LV_Width)
   GoTo 2GuiClose
Return

; Settings
3ButtonSave:
   Gui 3:Submit
   IniWrite, %SetUseHdr%, %inifile%, settings, UseHdr
   IniWrite, %SetHotkey%, %inifile%, settings, hotkey
   Reload
   GoTo 3GuiClose
Return

; Edit
4ButtonSave:
   Gui 4:Submit
   
   If Status = New
      Status = 1
   If Status = Active
      Status = 2
   If Status = Urgent
      Status = 3
   If Status = Waiting
      Status = 4
   If Status = Done
      Status = 5
   
   SelectedDbRow := GetDbRow(database, LV_TimeStamp)
   StringReplace, Body, Body, `n, :NL:, A
   TXT_ReplaceLine("!" . database, SelectedDbRow, Header "|" Body "|" Status "|" LV_TimeStamp)
   LoadDB(database)
   ;Resize Col to remove scrollbars
   RemoveVSCROLL(gui_hwnd, Appearance, NewWidth, LV_Width)
   Goto 4GuiClose
Return

7ButtonSave:
   Gui 7:Submit
   IniWrite, %NewHeader%, %inifile%, settings, HeaderText
   ;Reload
   Gui 1:Default
   LV_ModifyCol(1,"", NewHeader)
   Goto 7GuiClose
Return

GuiSize:
if ErrorLevel = 1  ; The window has been minimized.  No action needed.
    return
; Otherwise, the window has been resized or maximized. Resize the Edit control to match.
NewWidth := A_GuiWidth
NewHeight := A_GuiHeight
GuiControl, Move, TD_List, W%NewWidth% H%NewHeight%

;Resize Col to remove scrollbars
RemoveVSCROLL(gui_hwnd, Appearance, NewWidth, LV_Width)
Return

GuiEscape:
GuiClose:
   WinGetPos, Self_X, Self_Y, Self_W, Self_H, ahk_id %gui_hwnd%
   If (Appearance = 1) {
      IniWrite, %Self_H%, %inifile%, settings, DockedH
   }
   Else {
      IniWrite, %Self_X%, %inifile%, settings, Win_X
      IniWrite, %Self_Y%, %inifile%, settings, Win_Y
      IniWrite, %Self_W%, %inifile%, settings, LV_Width
      IniWrite, %Self_H%, %inifile%, settings, LV_Height
   }
   ExitApp
Return

; Quick Add
2GuiEscape:
2GuiClose:
   Input
   Gui 2:Destroy
   Gui 1:Default
Return
3GuiEscape:
3GuiClose:
   Gui 3:Destroy
   Gui 1:Default
Return
4GuiEscape:
4GuiClose:
   Gui 4:Destroy
   Gui 1:Default
Return
5GuiEscape:
5GuiClose:
   Gui 5:Destroy
   Gui 1:Default
Return
6GuiEscape:
6GuiClose:
   Gui 6:Destroy
   Gui 1:Default
Return
7GuiEscape:
7GuiClose:
   Gui 7:Destroy
   Gui 1:Default
Return
#include TXT.ahk

TXT.ahk
Code:
TXT_RemoveLines(TextFile, StartLine, EndLine){
Original := A_BatchLines
SetBatchLines, -1
    TextFile := (SubStr(TextFile,1,1)="!") ? (SubStr(TextFile,2),OW=1) : TextFile
    FileRead, Str, %TextFile%
    Loop, Parse, Str, `n, `r
    {
        If A_Index between %StartLine% and %Endline%
            Continue
        Else
            OutPut .= A_LoopField "`n"
    }
   StringTrimRight, OutPut, OutPut, 1 ; trim trailing `n
    If OW {
        FileDelete, %TextFile%
        FileAppend, %OutPut%, %TextFile%
    }
    Else {
        SplitPath, TextFile,, Dir, Ext, Name
        FileDelete, % Dir "\" Name "_copy." Ext
        FileAppend, %OutPut%, % Dir "\" Name "_copy." Ext
    }
SetBatchLines, %Original%
}
TXT_ReplaceLine(TextFile, Line, ReplaceText=""){
Original := A_BatchLines
SetBatchLines, -1
    TextFile := (SubStr(TextFile,1,1)="!") ? (SubStr(TextFile,2),OW=1) : TextFile
    FileRead, Str, %TextFile%
    Loop, Parse, Str, `n, `r
        OutPut .= (A_Index=Line) ? ReplaceText "`n" : A_LoopField "`n"
   StringTrimRight, OutPut, OutPut, 1 ; trim trailing `n
    If OW {
        FileDelete, %TextFile%
        FileAppend, %OutPut%, %TextFile%
    }
    Else {
        SplitPath, TextFile,, Dir, Ext, Name
        FileDelete, % Dir "\" Name "_copy." Ext
        FileAppend, %OutPut%, % Dir "\" Name "_copy." Ext
    }
SetBatchLines, %Original%
}
TXT_SetCSV(TextFile, Row, Column, Text="", Delimiter="|"){ ;A_Tab, A_Space
Original := A_BatchLines
SetBatchLines, -1
    TextFile := (SubStr(TextFile,1,1)="!") ? (SubStr(TextFile,2),OW=1) : TextFile
    FileRead, Str, %TextFile%
    Loop, Parse, Str, `n, `r
    {
        If (A_Index!=Row)
            OutPut .= A_LoopField "`n"   
        Else
        {
            StringSplit, Line, A_LoopField, %Delimiter%
            Loop, %Line0%
            {
                if (A_Index!=Column) {
               NewLine := Line%A_Index%
                    Output .= (Line0!=A_Index) ? NewLine Delimiter : NewLine
            }
                Else
                    OutPut .= (Line0!=Column) ? Text Delimiter : Text
            }
            OutPut .= "`n"
        }
    }
   StringTrimRight, OutPut, OutPut, 1 ; trim trailing `n
    If OW {
        FileDelete, %TextFile%
        If ErrorLevel
            Return ErrorLevel
        FileAppend, %OutPut%, %TextFile%
        If ErrorLevel
            Return ErrorLevel
    }
    Else {
        SplitPath, TextFile,, Dir, Ext, Name
        FileDelete, % Dir "\" Name "_copy." Ext
        If ErrorLevel
            Return ErrorLevel
        FileAppend, %OutPut%, % Dir "\" Name "_copy." Ext
        If ErrorLevel
            Return ErrorLevel       
    }
SetBatchLines, %Original%
}


slt.ini
Code:
[settings]
LV_Height=593
DockedH=210
LV_Width=302
Win_X=100
Win_Y=100
database=sltodo.slt
HeaderText=Click me to change
UseHdr=1
hotkey=#t
Appearance=3


Cheers

Edit: Forgot to mention the icons used.
http://famfamfam.com/lab/icons/silk/
Great resource for nice looking icons.
bullet_blue.png = new
bullet_go.png = active
exclamation.png = urgent
user.png = waiting
tick.png = done


Report this post
Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: February 27th, 2009, 9:46 am 
can you make a pack and post screenshots?

this is pretty good, thanks for sharing


Report this post
Top
  
Reply with quote  
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 2 posts ] 

All times are UTC [ DST ]


Who is online

Users browsing this forum: Bon, SKAN and 6 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