Демонстрация на GUI на редактора на икони

Пример "Демонстрация на GUI на редактора на икони". Описанието е съставено с участието на студента Е. Г. Улченко. (SamSTU).

Моделът на графичния интерфейс на редактора на пиктограми се съдържа в Simulink-Stateflow-Examples.

бутон мишката

Фиг. 1 Стартиране на демонстрацията

След като стартираме модела, ще видим следния прозорец.

бутон мишката

В превод на руски език надписите означават следното.

демонстрация

Блокът за инжектор на събития играе ролята на система за проследяване, която следи за промяната в състоянието на мишката и синтезира съответните изходни събития. Можем да видим вътрешната структура на блока Event Injector на Фигура 4:

Фиг. 4 "Вътрешна структура на блока на инжектора на събития"

Движение на мишката „BM“ - Преместете мишката

„NBD“ Нормален (ляв) бутон на мишката надолу - натиснат левия бутон на мишката

Бутон на мишката „BU“ - Бутонът на мишката е освободен

„ABD“ Алтернативен (десен) бутон на мишката надолу - Натиска се десният бутон на мишката

Резултатът от тази функция е низ от четири елемента. Промяната на съответния елемент на масива от 0 на 1 или обратно - показва появата на това събитие.

Например, ако оригиналният изходен масив е бил, тогава след натискане и освобождаване, например, левия бутон на мишката, изходният масив ще се промени на - което съответства на появата на две събития: натискане на левия бутон ('NBD') и освобождаване на бутона ('BU'). Ако сега натиснете и отпуснете десния бутон на мишката, изходът ще бъде .

икони

Блокът „Chart“ е контролна програма, написана на алгоритмичен език, използван за изграждане на модели на Stateflow. Така блокът „Chart“ е алгоритъм на модел, управляван от събития. Вътрешната структура на блока "Chart" е показана на фигура 6.

редактора

Фиг.6 "Вътрешна структура на блока" Chart "

Както можете да видите от фигурата, в блока „Chart“ има три подсистеми: Main, Focus, ToolBar, всяка от които реализира отделен алгоритъм.

Всички подсистеми работят паралелно, но на фигура 6 в правоъгълника има бележка - „Забележка: Уверете се, че„ Focus “идва преди„ Tool “. Състоянието на инструмента зависи от актуалната информация за Focus. ', Което гласи: „Уверете се, че„ Focus “е пред„ Tool “. Състоянието на„ Tool “зависи от текущата информация за„ Focus “.“ Тези. изчисляването на променливи, използвани в „ToolBar“, но изчислено във „Focus“, трябва да се извърши преди да се използват техните стойности в „ToolBar“.

Блокът „Chart“ използва:

Подсистема „Фокус“.

икони

Фиг.7 "Подсистема" Фокус "

Тази подсистема е предназначена да проследява позицията на курсора на мишката в работния прозорец на редактора на иконите на Stateflow.

-'ToolBar' - 'Toolbar' - област на лентата с инструменти (на фиг. 5 - лента с инструменти).

-„Палитра“ - „Палитра“ - област на палитрата, която е подразделена на области „Swatch“ - „Swatch“ и „None“ - „None“. („Swatch“ - областта на цветовете на палитрата; „Няма“ - останалата част от палитрата, тази област включва и индикатора, показващ избрания цвят).

-„Платно“ - „Платно“ - зона за рисуване (на фиг. 5 - голям бял квадрат).

-„Икона“ - „Пиктограма“ - област на показване на намалена икона (на фиг. 5 - малък бял квадрат в долния ляв ъгъл).

-„Няма“ - „Няма“ - празна област, т.е. област, която не принадлежи към нито едно от горепосочените (на фиг. 5 тази област е изпълнена с ярко синьо).

Трябва да се отбележи, че входното събитие за подсистемата „Фокус“ ​​е само събитието BM - движение на мишката.

Характеристиката на позицията на курсора на мишката не се ограничава до горните пет области, тъй като областите "Палитра" и "Лента с инструменти" имат свои подрайони, отделни цветове в палитрата и седем контролни бутона в лентата с инструменти.

Проследяването на позицията на мишката в палитрата се извършва вътре в модула sf_edit_icon.m, а проследяването на позицията на мишката в лентата с инструменти се извършва с помощта на функцията set_focusedIcon (), която представлява набор от условия, при които стойността на определя се променливата 'focusIcon', което от своя страна е характеристика на курсора на позицията.

редактора

Проследяването на стойността на тази променлива започва от момента, в който подсистемата „Focus“ преминава в състояние „ToolBar“, продължава, докато „Focus“ е в това състояние и при излизане от състоянието „ToolBar“ на променливата focusIcon се присвоява стойността 0, което съответства на случая, когато курсорът на мишката не е върху нито един от бутоните на контролния панел. Така стойността на променливата focusIcon е началната стойност за работата на алгоритъма на подсистемата „ToolBar“, поради което алгоритъмът „Focus“ трябва да бъде изпълнен преди алгоритъма „ToolBar“.