zenden2k / image-uploader

A program for uploading images, screenshots and other files to a few dozen file hosting services. It has screenshooting capabilities and integrated image editor.
https://svistunov.dev/imageuploader
Apache License 2.0
117 stars 27 forks source link

Custom scriptable dialogs #114

Open arhangelsoft opened 9 years ago

arhangelsoft commented 9 years ago

Суть: Через скрипты можно будет создавать визуальные окна, соответственно это дает куда больше возможностей.

  1. Окна настройки и загрузки.
  2. Окна авторизации(кастомные), параметров сервера.
  3. Окна настройки аккаунта.

    И много-много других мест где их можно было бы приписать....

Многие сервисы, особенно картинок дают кучу крутых опций при загрузке картинок. Тоже для файловых хранилищ можно.

Какой-нибудь класс: CForm со ствойствами, событиями и методами и функциями.

Компоненты: CLabel - метка CButton - кнопка CCheckBox - птыц CEdit - поле ввода CMemo - многострочное CImage - пикча CListBox - список строк CComboBox - выпад. список CMenu - меню CPupupMenu - выпад. список

IDE для форм и скриптов могу я написать) т.е. полноценный редактор форм, редактор кода с подсветкой синтаксиса и мозгами при наборе кода.

Но нужно будет и формат скриптов поменять, опять же модульность в теме: ./HelloWorld.iusp - Image Uploader scriptable plugin ./info.txt - информация, что к чему ./icon.png - иконка расширения ./main.nut - пусковой скрипт ./forms/ - папка форм ./forms/hw.sform - форма, как JSON или XML, кароче чтобы IU могло по нему окно построить. ./forms/hw.nut - скрипт формы

как идейка?

zenden2k commented 9 years ago

Слишком сложно. Это надо будет для каждого контрола писать обертку, к тому же, я скоро собираюсь писать новый интерфейс на Qt, тогда придется делать сразу 2 реализации. Да и вообще это попахивает написанием своего велосипедного GUI-фреймворка для языка Squirrel. Плюс еще есть консольная версия, которой окошки ни к чему. Идея с GetServerParamListEx() мне нравится больше, тем более, что компонент, который используется в диалоговом окне, как я выяснил, поддерживает помимо edit box, еще combobox, checkbox, и что-то еще. http://www.viksoe.dk/code/propertylist.htm Мне больше по душе унифицированный интерфейс настроек, чем зоопарк разных форм, как у того же ShareX. Если так нужен кастомный диалог, можно использовать CWebBrowser и делать форму на HTML.

zenden2k commented 9 years ago

А на чем вы хотите IDE писать?

arhangelsoft commented 9 years ago

Можно писать на Lazarus, или сугубо под Win, на Delphi.

arhangelsoft commented 9 years ago

Так или иначе скрипт предоставляет сервис хостинга а не IU. Что-то подобное должно быть.

Новый интерфейс для на Qt == переписание ПО с нуля? Зачем 2 реализации, когда можно сделать одну сугубо уже на Qt;

zenden2k commented 9 years ago

Нет, это не переписывание с нуля, а упрощенная версия для всяких линуксов и прочих макос.

arhangelsoft commented 9 years ago

Разве C++ не способен на это?

zenden2k commented 9 years ago

В смысле? Способен на что?

arhangelsoft commented 9 years ago

версия под Linux и Mac.

zenden2k commented 9 years ago

C++ - да, WTL - нет. Qt это и есть кроссплатформенная C++ библиотека для GUI и не только.

arhangelsoft commented 9 years ago

Скорее платформа нежели библиотека.

arhangelsoft commented 9 years ago

Может это поможет) http://stackoverflow.com/questions/12717138/what-is-linux-s-native-gui-api

zenden2k commented 9 years ago

Я не собираюсь лезть в дебри, кроме Qt мне ничего не нужно. Правда не всё так просто, есть еще зависимость от библиотеки Gdiplus, придется переписывать с использованием аналогов из Qt.

zenden2k commented 9 years ago

Случайно наткнулся на такое чудо: 001.png

Наверно, вы хотели что-то подобное сделать? http://www.aimp.ru/blogs/?p=530

эх. надо было Image Uploader на Delphi писать!

p.s. разработчик - маньяк мне бы так уметь

arhangelsoft commented 9 years ago

Да, что-то вроде этого можно было бы сделать.

Механизм называется LiveBindings, т.е. прямая связь между своством класса и визуальным элементом, обо всем остальном думает LiveBindings....

Кстати говоря этот механизм(свободное связывание свойства с нужным элементом управления) разработчик AIMP'а давненько придумал, до появления самого LiveBindings в Delphi.