Брендирование
Эта статья описывает Брендинг FreeCAD. Брендинг средств для начала вашего собственного приложения основанного на FreeCAD. Это может быть как ваш собственный исполняемый файл или загрузочная картинка так и полностью переработанная программа. На базе гибкой архитектуры FreeCAD, её легко использовать как основу для собственной целевой программы.
Главное
Болшинство брендинга(не знаю как с этим словом обращаться) делается в MainCmd.cpp или MainGui.cpp. Эти Проекты генерируют исполняемые файлы FreeCAD. Чтобы сделать ваш собственный Бренд просто скопируйте Main или MainGui проекты и дайте исполняемым файлам собственное имя, например FooApp.exe.
Наиболее важные настройки для нового облика можно сделать в одном месте в main() функции. Вот участок кода, который управляет брендингом:
int main( int argc, char ** argv )
{
// Name and Version of the Application
App::Application::Config()["ExeName"] = "FooApp.exe";
App::Application::Config()["ExeVersion"] = "0.7";
// set the banner (for loging and console)
App::Application::Config()["ConsoleBanner"] = sBanner;
App::Application::Config()["AppIcon"] = "FCIcon";
App::Application::Config()["SplashPicture"] = "FooAppSplasher";
App::Application::Config()["StartWorkbench"] = "Part design";
App::Application::Config()["HiddenDockWindow"] = "Property editor";
App::Application::Config()["SplashAlignment" ] = "Bottom|Left";
App::Application::Config()["SplashTextColor" ] = "#000000"; // black
// Inits the Application
App::Application::Config()["RunMode"] = "Gui";
App::Application::init(argc,argv);
Gui::BitmapFactory().addXPM("FooAppSplasher", ( const char** ) splash_screen);
Gui::Application::initApplication();
Gui::Application::runApplication();
App::Application::destruct();
return 0;
}
Первая запись Config определяет название программы. Это не имя исполняемого файла, который может быть изменен путем переименования или настройки компилятора, а имя, которое отображается в панели задач в Windows или в списке программ в Unix системах.
Следующие строки определяют Config записи вашего FooApp Приложения. Описание Config и его элементов вы можете найти в запуске и конфигурации.
Изображения
Все графические ресурсы скомпилированы с FreeCAD. Это уменьшает несвоевременную загрузку и сохраняет установку компактной. Изображения включены в XPM-Формате который в основном текстовый формат использующий C-синтаксис. Вы можете в основном рисовать это изображение в текстовом редакторе, но удобней будет создать изображение с помощью вашей любимой графической программы и позже сконвертировать его в XPM формат.
GNU программа управления изображением Gimp может сохранять файл в XPM формате.
Для преобразования можно использовать инструмент ImageConv который включен в freecad. Вы можете найти его в
/trunk/src/Tools/ImageTools/ImageConv
Он не только может конвертировать изображения но также автоматически обновляет файл BmpFactoryIcons.cpp , где зарегистрированы изображения. Обычное использование, также просто, как и в следующем примере:
ImageConv -i InputImage.png -o OutputImage.xpm
Это сконвертирует файл InputImage.png в XPM-формат и запишет результат в файл OutputImage.xpm.
Строка:
Gui::BitmapFactory().addXPM("FooAppSplasher", ( const char** ) splash_screen);
в main() включит изображение в BitmapFactory FreeCAD.
Иконки
Главная иконка приложения FCIcon ,которая появляется в заголовках окон и других местах, определена в
/trunk/src/Gui/Icons/images.cpp
и начинается со строчки
static const char *FCIcon[]={
Замените её на любимую иконку, пересоберите freecad и следующий шаг по созданию вашего собственного бренда будет закончен. Есть ещё множество других иконок в этом файле ,вы можете изменить их, как вам хочется.
Если вам нужно добавить новые иконки, зарегестрируйте их в
/trunk/src/Gui/Icons/BmpFactoryIcons.cpp
так что вы можете получить доступ к ним из FreeCAD.
Фоновое Изображение
Фоновое изображение появляется, когда в окне не открыто ни одного документа. Как и заставка, оно определено в developers.h в разделе начинающемся с:
static const char* const background[]={
Вы должны выбрать изображение с низким контрастом для фона. В противном случае оно может раздражать пользоаптеля.