星期五, 12月 02, 2005

重開程式時想要視窗留在原位置嗎?

最近由oldnewthing逛到flow|state,有空就會看幾篇。

UI設計問題的多面相本質這篇對我來說蠻有趣的,尤其是看到設計者投降的時候。
摘譯一下:

重開程式時想要視窗留在原位置嗎?

1. 設計者:這個功能很好做,當使用者關閉視窗時把視窗目前狀態(Windows裡就是最大化,最小化或正常)和位置記起來就好。

  使用者:呃,勉強能用啦,不過如果我是在視窗最小化時關掉程式(比如把一堆程式最小化時登出系統),下次啟動程式時就變最小化了。這樣很笨耶。

2. 設計者:沒問題,我們只會在視窗最大化或正常時才會記錄視窗狀態及位置。

  使用者:這樣好一點,不過有時候還是不對。我把視窗位置調好然後最小化,再把它關掉,結果就不會回復成原本的位置。

3. 設計者:這問題很好解,不管什麼狀態都記錄視窗位置,不過只有在最大化或正常狀態下才記錄視窗狀態就好啦。

  使用者:問題還在。

4. 設計者:嗯呃。好像當視窗最小化時,視窗位置的資料都是垃圾,並不是我們想像中會存放最後作用的視窗位置。解決的辦法是只要視窗在正常狀態下有調整位置,就把這個位置當作使用者的偏好記起來。當時用者關閉程式時,我們就把這個偏好位置記錄下來,就不會記到垃圾。另外如果視窗是最大化或正常時,也要記錄視窗狀態。

  使用者:很不錯耶!看起來大致正常。不過有件事很怪:我把視窗調到要的位置,先最大化再最小化,然後再關掉。再打開時視窗卻回到正常狀態,而不是最後看到的最大化。這很怪。

5. 設計者:你真是個澳客。好吧,當時用者把視窗切成正常或最大化時,我們也把狀態當作偏好記起來。關閉程式時就跟偏好位置一樣處理。這樣滿意了嗎?

  使用者:還沒完呢。我有台筆記型電腦,桌上也有台外接螢幕,兩邊的解晰度不同。我在用外接螢幕時把程式關掉,等回來用內建螢幕時視窗位置就亂啦。有時候甚至滑鼠還點不到呢。

6. 設計者:了不起!好吧,當我們記錄使用者偏好的視窗位置時也會記錄螢幕的解晰度。當程式開啟時的螢幕解晰度不同,就會儘可能算出一個在新螢幕上有意義的位置。

  使用者:多少有點用,不過還是有點問題。每次在外接及內建螢幕間切換,視窗位置就會偏移一點點。我希望能在外接螢幕上能固定一組位置,用內建螢幕也能記住另一組位置。

7. 設計者:呃。看起來我們得用一個清單紀錄螢幕解晰度和對應的偏好視窗位置。等使用者用得夠久,就會記住所有使用者會用的螢幕和對應的視窗位置。現在滿意了嗎?
  使用者:很接近了。我有提過我最近買了一台高DPI的螢幕嗎?我覺得你重算視窗大小時應該要考慮實際的尺寸而不是用像素來算...

8. 設計者:拜託!求求你走吧。

2 則留言:

tu 提到...

哈哈哈,說得好!

也謝謝你的翻譯啊~

mph 提到...

有人說看不太懂飛航安全玩具組那一篇,以後東西比較多又有空就大略翻出來好了。