Page 2 of 4

Re: Кнопки "Развернуть окно" и "Вернуть к обычному размеру"

Posted: Fri Jun 14, 2013 9:55 am
by SoUrcerer
Для тех, кому нужно, есть "окно без скина". Вообще, я буду рад, если это предложение будет реализовано, но настаивать не очень буду.

Re: Кнопки "Развернуть окно" и "Вернуть к обычному размеру"

Posted: Fri Jun 14, 2013 10:55 am
by Leency
А я буду настаивать на появлении кнопок "Развернуть окно" и "Вернуть к обычному размеру".
Окно без скина - ужаснейший пережиток Менуэта. Выпилить его к чертям. Для тех, кому нужно окно без скина пусть просто определяют область и рисуют там что угодно.

Re: Кнопки "Развернуть окно" и "Вернуть к обычному размеру"

Posted: Fri Jun 14, 2013 11:58 am
by SoUrcerer
Вообще я это и имел в виду. Есть же определение окна без отрисовки, верно?

Re: Кнопки "Развернуть окно" и "Вернуть к обычному размеру"

Posted: Fri Jun 14, 2013 12:05 pm
by Serge
Есть, но заголовком там всё равно рулит ядро. Что создаёт неприятные эффекты - запускаем FPlay, кликаем на кнопке в заголовке и двигаем мышь.

Re: Кнопки "Развернуть окно" и "Вернуть к обычному размеру"

Posted: Fri Jun 14, 2013 4:25 pm
by IgorA
Есть два замечания по поводу кнопок:
1) Если добавлять новые стандартные кнопки в скин, то думаю должна быть возможность при создании окна включать или выключать любые из них, в зависимости от того нужны они в данном окне или нет. Т. е. если какая либо кнопка не нужна то скин рисуется без нее.
2) Еще могу посоветовать добавить стандартную кнопку с вопросиком, по аналогии с виндосовским стилем WS_EX_CONTEXTHELP.

Re: Кнопки "Развернуть окно" и "Вернуть к обычному размеру"

Posted: Fri Jun 14, 2013 6:49 pm
by SoUrcerer
Возможно, идея кнопки с вопросиком была инновационной, но, к сожалению, не прижилась. Если пользователя интересуют многие элементы интерфейса, ему придется метаться мышкой туда-сюда; вдобавок, подсказки по вопросику часто бывают слишком тривиальны. Но это не значит, что такое не приживется у нас, с другой стороны. Зависит от реализации.

Re: Кнопки "Развернуть окно" и "Вернуть к обычному размеру"

Posted: Fri Jun 14, 2013 8:06 pm
by Mario_r4
По моему субъективному оценочному суждению кнопка "?" не нужна. Вешать на дерево табличку с надписью "дерево" не имеет большого смысла.
Насчет персонализации наличия кнопок для конкретного окна - такая вещь нужна и востребована.

Re: Кнопки "Развернуть окно" и "Вернуть к обычному размеру"

Posted: Fri Jun 14, 2013 8:17 pm
by SoUrcerer
Собственно, было бы здорово, если бы окно:
1) Имело минимально допустимый размер (например, VLC нельзя свернуть сильнее, чем кнопки play+prev+next+громкость)
2) Имело максимально допустимый размер (не все программы могут работать на весь экран)
3) Имело бы в заголовке кнопку распахнуть/свернуть, если это действие возможно для окна (удобно же!)
4) Показывало бы в углу маленький неприметный треугольничек, если размер окна возможно изменять (не всегда ясно, можно ли растягивать окно)
5) При наведении мыши на рамку изменяло курсор мыши на стрелки растягивания - разумеется, в случае, если окно можно растягивать (еще одна наглядная демонстрация того, что размер окна можно изменить)

Наверное, я чего-то заоблачного сейчас от текущей оконной подсистемы прошу :D

Re: Кнопки "Развернуть окно" и "Вернуть к обычному размеру"

Posted: Fri Jun 14, 2013 8:26 pm
by Mario_r4
1 и 2 реализуются на уровне приложения, абсолютно ничего сложного. Вот только блокировки флага разворота на весь экран для этого случая нет.
5 - я даже собирался делать (помнишь глобус украины курсор с круглыми часиками?), но мне помогли понять, что сей безблагодарный труд никаким почетом для меня пользоваться не будет и его забудут, как сотни других мелких улучшений (кто теперь вспомнит моргавший курсор и вылезающие на передний план иконки?). Все безвозвратно сгорает в ядерной топке ракетного двигателя проекта.

З.Ы. Более того - вот сделаю я автомонтирование дополнительного раздела по файлу-метке, так через пару месяцев тоже никто не вспомнит такую мелочь - такие вещи воспринимаются само собой разумеющимися и не достойными внимания.

Re: Кнопки "Развернуть окно" и "Вернуть к обычному размеру"

Posted: Fri Jun 14, 2013 8:29 pm
by SoUrcerer
Собственно, пункт 4 тоже реализуется на уровне приложения.
Насчет пункта 5 - если у тебя вдруг снова возникнет такое желание, то это по крайней мере меня очень обрадует.

Re: Кнопки "Развернуть окно" и "Вернуть к обычному размеру"

Posted: Fri Jun 14, 2013 9:09 pm
by Serge
Для пункта 5 уже есть готовые курсоры. Я их лично рисовал, никаких проблем с копирайтом.
И все 5 пунктов реализуются на уровне приложения, хотя курсорный код ядра нуждается в некоторой чистке и модификации.

Re: Кнопки "Развернуть окно" и "Вернуть к обычному размеру"

Posted: Fri Jun 14, 2013 9:11 pm
by SoUrcerer
Супер, ребята, вы молодцы. Курсоры мне очень понравились еще в fplay!

Re: Кнопки "Развернуть окно" и "Вернуть к обычному размеру"

Posted: Sat Jun 15, 2013 10:50 am
by Leency
1) реализовывать на уровне приложения лишний код и костыли по большому счёту. Это должно быть в параметрах окна.

Опен сорс вообще вещь неблагодарная и если кто-то пришёл сюда за славой и памятью в веках, то он наверно пришёл не по адресу.

Re: Кнопки "Развернуть окно" и "Вернуть к обычному размеру"

Posted: Sat Jun 15, 2013 11:27 am
by Serge
Leency
Это в ядре как раз лишний код с кнопками и заголовками. Ядру достаточно области отрисовки контролировать и события в правильном порядке раздавать.

Re: Кнопки "Развернуть окно" и "Вернуть к обычному размеру"

Posted: Sat Jun 15, 2013 2:07 pm
by Akyltist
Leency wrote:Окно без скина - ужаснейший пережиток Менуэта. Выпилить его к чертям.
окно без скина позволяет аботаль с полнооконными приложениями как в видеоиграх проще чем окно со скином, учитывая бордюр и прочее. Собственно да это пережиток, и выкинуть его можно)

Соглашусь с serge
Это в ядре как раз лишний код с кнопками и заголовками. Ядру достаточно области отрисовки контролировать и события в правильном порядке раздавать.
вынести работу по окнам в библиотеку, библиотеке тоже ни что не помешает подгружать скин и отрисовывать, но смущает вопрос о производительности такой отрисовки...

Ну а пока спрошу сам, являются ли в текущем положении актуальными такие параметры как:

Code: Select all

WINDOW_CAPTION	- Фон полосы заголовка.
WINDOW_INACTCAPTION	 - Фон полосы заголовка при неактивном окне.
На мой взгляд эти параметры ни к чему и хотелось бы мне их выкинуть, но мож я чего то не знаю????

Пока текущая таблица системных цветов такая, сейчас работаю над описаниями каждого контрола и каждого значения из таблицы, чтобы это не вызывало сомнений, поэтому собственно если у кого есть вопросы о необходимости я отвечу, но кратко.
Spoiler:

Code: Select all

1	WINDOW_FACE	Фон активного окна.
2	WINDOW_INACTFACE	Фон неактивного окна.
3	WINDOW_FRAME	Цвет рамки активного окна.
4	WINDOW_INACTFRAME	Цвет рамки неактивного окна.
5	WINDOW_CAPTION	Фон полосы заголовка.
6	WINDOW_INACTCAPTION	Фон полосы заголовка при неактивном окне.
7	WINDOW_TITLE	Цвет текста полосы заголовка.
8	WINDOW_TEXT	Цвет текста в рабочей области окна.
9	WINDOW_APPWORKSPACE	Фон панелей и дочерних окон приложения.
10	WINDOW_GRAYTEXT	Цвет неактивного текста.
11	BTN_FACE	Фон выпуклого элемента (кнопки).
12	BTN_INACTFACE	Фон неактивного выпуклого элемента.
13	BTN_FOCUSFACE	Фон выпуклого элемента при наведении.
14	BTN_FRAME	Цвет рамки кнопки.
15	BTN_INACTFRAME	Цвет рамки неактивной кнопки.
16	BTN_FOCUSFRAME	Цвет рамки кнопки при наведении.
17	BTN_TEXT	Цвет текста кнопки.
18	BTN_INACTTEXT	Цвет текста неактивной кнопки.
19	BTN_FOCUSTEXT	Цвет текста кнопки при наведении.
20	3D_FACE	Полоса просмотра.
21	3D_DARK	Теневая обводка 3D.
22	3D_LIGHT	Световая обводка 3D.
23	ELEMENT_FACE	Фон input элементов (edit, listbox).
24	ELEMENT_INACTFACE	Фон неактивных input элементов.
25	ELEMENT_FRAME	Цвет рамки input элементов.
26	ELEMENT_INACTFRAME	Цвет рамки неактивных input элементов
27	ELEMENT_VOLUME	Цвет выделения и заполнения.
28	ELEMENT_TEXT	Цвет текста input элементов.
29	ELEMENT_INACTTEXT	Цвет текста неактивных input элементов.
30	ELEMENT_SHADOW	Цвет тени для неактивных input элементов.
31	RESERVED	Зарезервировано.
32	RESERVED	Зарезервировано.
Элементы к которым будет описание в спецификации с визуальным отображением.
Spoiler:

Code: Select all

Window
ChildWindow (??? возможно и будет)
Edit
CheckBox
ListBox
ComboBox
ProgressBar
PopupMenu
Label
Panel
Button
TreeViewer
TabSet
TrackBar
ScrollBar
StatusBar
Hint