Ticket #2919 (closed task: fixed)

Opened 11 years ago

Last modified 3 months ago

Reimplementation of widget subsystem

Reported by: andrew_b Owned by: andrew_b
Priority: major Milestone: 4.8.27
Component: mc-core Version: master
Keywords: Cc:
Blocked By: Blocking:
Branch state: merged Votes for changeset: committed-master

Description

Frist stage:

  1. Derive dialog from widget.
  2. Unification of widget and dialog callback functions and message handling.
  3. Enhance widget capabilities.
  4. New QuickDialog? engine that simplifies dialog building.
  5. Build dialogs in normal order only: place widgets from top-left down to bottom-right.

Change History

comment:1 Changed 11 years ago by andrew_b

  • Owner set to andrew_b
  • Status changed from new to accepted

comment:2 Changed 11 years ago by andrew_b

  • Branch state changed from no branch to on review

Branch: 2919_dlg_as_widget (parent: master).
Initial changeset:5788e1f56ab0663c01ea35daf2f18946d33b92a9

Version 0, edited 11 years ago by andrew_b (next)

comment:3 Changed 11 years ago by andrew_b

  • Blocking 64, 1381 added

comment:4 Changed 11 years ago by slavazanko

  • Votes for changeset set to slavazanko

comment:5 Changed 11 years ago by angel_il

  • Votes for changeset changed from slavazanko to slavazanko angel_il
  • Branch state changed from on review to approved

comment:6 Changed 11 years ago by andrew_b

  • Status changed from accepted to testing
  • Votes for changeset changed from slavazanko angel_il to committed-master
  • Resolution set to fixed
  • Branch state changed from approved to merged

Merged to master: [47fc9f669f46ea9735e139eb871a65cc157fb94b].

git log --pretty=oneline f45f155..47fc9f6

comment:7 Changed 11 years ago by andrew_b

  • Blocking 64, 1381 removed

comment:8 Changed 11 years ago by andrew_b

  • Milestone changed from 4.8.7 to Future Releases

comment:9 Changed 11 years ago by andrew_b

  • Status changed from testing to reopened
  • Resolution fixed deleted

comment:10 Changed 8 years ago by andrew_b

  • Votes for changeset committed-master deleted
  • Branch state changed from merged to on review
  • Milestone changed from Future Releases to 4.8.18

The next stage: refactoring of widget select/deselect and focus/unfocus:

  • add WOP_SELECTABLE option that shows whether widget can be selected (WInput, WCheck, etc) or not (WLabel, WGauge, etc). Test this option instead of callback call;
  • add WST_FOCUSED state and use it instead widget-own states (WListbox::focused, WButton::selected, WTree::active, etc). Test this option instead of callback call;
  • get rid of multiple widget redraw. In many cases messages MSG_DRAW and MSG_FOCUS (and/or MSG_RESIZE) are sent to widget in series. Handling these messages, widget is redrawn twice (for example, see input_callback():
         case MSG_RESIZE:
         case MSG_FOCUS:
         case MSG_UNFOCUS:
         case MSG_DRAW:
             input_update (in, FALSE);
             return MSG_HANDLED;
    
    MSG_DRAW message handler must be the only place where widget should be drawn. Widget should not draw itself in other message handlers.

Branch: 2919_widget_focus_refactoring
Initial changeset:85040195fabf14534ad47a01b4356cbcad1940bf

Some dialogs are located in top-left corner. This bug is fixed in 3641_cleanup branch.

comment:11 Changed 8 years ago by andrew_b

  • Votes for changeset set to andrew_b
  • Branch state changed from on review to approved

comment:12 Changed 8 years ago by andrew_b

  • Status changed from reopened to closed
  • Votes for changeset changed from andrew_b to committed-master
  • Resolution set to fixed
  • Branch state changed from approved to merged

Merged to master: [4d6ea432829250f32bfecba3bd7eadd35a546b09].

git log --pretty=oneline 9c3fe04..4d6ea43

comment:13 Changed 4 years ago by andrew_b

  • Status changed from closed to reopened
  • Votes for changeset committed-master deleted
  • Resolution fixed deleted
  • Branch state changed from merged to on review
  • Milestone changed from 4.8.18 to 4.8.23

Next step: implementation of WGroup widget -- a base class for widgets which contain other widgets.

Branch: 2919_group.
Initial changeset:c36cd25cd44d98bad1ca3309fe5b49502a34cc8b

comment:14 Changed 4 years ago by andrew_b

  • Branch state changed from on review to on rework
  • Milestone changed from 4.8.23 to Future Releases

comment:15 Changed 4 years ago by andrew_b

  • Branch state changed from on rework to on review
  • Milestone changed from Future Releases to 4.8.25

comment:16 Changed 4 years ago by andrew_b

  • Votes for changeset set to andrew_b
  • Branch state changed from on review to approved

comment:17 Changed 4 years ago by andrew_b

  • Status changed from reopened to closed
  • Votes for changeset changed from andrew_b to committed-master
  • Resolution set to fixed
  • Branch state changed from approved to merged

Merged to master: [a55b3fb6847147251bac69b8a6c6218f6fc67aac].

git log --pretty=oneline afb09f7cd..a55b3fb68

comment:18 Changed 4 years ago by andrew_b

  • Status changed from closed to reopened
  • Resolution fixed deleted

comment:19 Changed 4 years ago by andrew_b

  • Votes for changeset committed-master deleted
  • Branch state changed from merged to no branch
  • Milestone changed from 4.8.25 to Future Releases

comment:20 Changed 3 years ago by andrew_b

  • Branch state changed from no branch to on review
  • Milestone changed from Future Releases to 4.8.27

New widget state: WST_VISIBLE. Applied to make widget visible/invisible.

Branch: 2919_visible
Initial changeset:81aeb633e8de7e62117cf13b237ff2ddaaa94f5d

comment:21 Changed 3 years ago by andrew_b

  • Votes for changeset set to andrew_b
  • Branch state changed from on review to merged

comment:22 Changed 3 years ago by andrew_b

  • Status changed from reopened to closed
  • Votes for changeset changed from andrew_b to committed-master
  • Resolution set to fixed

Merged to master: [0aaf74777d65ac2539b73c14d2e4e2baecb13451].

git log --pretty=oneline f67b6c1d0..0aaf74777

comment:23 Changed 3 years ago by andrew_b

  • Status changed from closed to reopened
  • Resolution fixed deleted

comment:24 Changed 3 years ago by zaytsev

  • Milestone changed from 4.8.27 to 4.8.28

comment:25 Changed 2 years ago by zaytsev

  • Milestone changed from 4.8.28 to 4.8.29

comment:26 Changed 16 months ago by zaytsev

  • Milestone changed from 4.8.29 to 4.8.30

comment:27 Changed 8 months ago by zaytsev

  • Milestone changed from 4.8.30 to 4.8.31

comment:28 Changed 3 months ago by zaytsev

  • Milestone changed from 4.8.31 to 4.8.32

Actually are you planning to work on that? :) Just asking, because I keep moving this to the next milestone for the last 2 years...

comment:29 Changed 3 months ago by andrew_b

  • Status changed from reopened to closed
  • Resolution set to fixed
  • Milestone changed from 4.8.32 to 4.8.27

OK.

Note: See TracTickets for help on using tickets.