Еще один текстовый редактор

...
  • Leency wrote:В INI комментарии могут идти начинаться с символа #.
    Я добавил для INI подсветку #-комментариев. Отмечу, что функция ini_get_str из библиотеки libini.obj игнорирует комментарии (как ";", так и "#"). Но, если считается, что "#" это комментарий, то я исправил также и файл cedit.ini: директивы препроцессора для C теперь задаются без "#":

    Code: Select all

    KW2 = define,error,include...
    вместо

    Code: Select all

    KW2 = #define,#error,#include...
    Leency wrote:Окну бы системные цвета.
    Я попробовал использовать системные цвета, но получается вот такая жуть:
    Spoiler:
    1.png
    1.png (23.11 KiB)
    Viewed 5863 times
    Ясно, что для тулбара цвет должен отличаться от цвета обычных кнопок. При этом, цвет должен сочетаться с цветом окна и, кроме того, нужно нарисовать "тень" от кнопок. Цвет "тени" тоже должен сочетаться с цветом окна и цветом кнопок тулбара. В общем, как мне кажется, системные цвета подходят только для программ с простым интерфейсом.
  • Цвет текста на кнопках не верный - должен быть белый.
    Для тулбара цвет кнопки не ок. Можно юзать .color_light и тень это .work

    Или вычислять самому.
    Я в С-- программах заморочился (WebView, Quark), но зато с любым скином выглядит гуд.
    Spoiler:

    Code: Select all

    :bool skin_is_dark()
    {
    	if (to_gray(sc.work) < 65) {
    		return true; 
    	} else {
    		return false;
    	}
    }
    
    unsigned int DrawTopPanelButton(dword _button_id, _x, _y, signed int _icon_n, bool pressed)
    {
    	#define TSZE 25
    	static libimg_image top_icons;
    	static dword semi_white=0, bg_col_light, bg_col_dark;
    	int i;
    	if (!semi_white) {
    		top_icons.load("/sys/icons16.png");
    
    		semi_white = MixColors(sc.work, 0xFFFfff, skin_is_dark()*90 + 96);
    		bg_col_dark = MixColors(sc.work, sc.work_graph, 90);
    		bg_col_light = MixColors(semi_white, 0xFFFfff, skin_is_dark()*90 + 10);
    
    		top_icons.replace_color(0xffFFFfff, semi_white);
    		top_icons.replace_color(0xffCACBD6, MixColors(semi_white, 0, 220));
    	}
    
    	DrawWideRectangle(_x+1, _y+1, TSZE, TSZE, 5, semi_white);
    
    	DefineHiddenButton(_x, _y, TSZE+1, TSZE+1, _button_id);
    	if (_icon_n==-1) {
    		DrawBar(_x+6, _y+5, 16, 16, semi_white);
    		for (i=0; i<=2; i++) DrawBar(_x+6, i*5+_y+7, 15, 3, sc.work_graph);
    	} else {
    		img_draw stdcall(top_icons.image, _x+6, _y+5+pressed, 16, 16, 0, _icon_n*16);
    	}
    
    	if (!pressed) {
    		DrawOvalBorder(_x, _y, TSZE, TSZE, bg_col_light, bg_col_dark, semi_white, sc.work);
    	} else {
    		DrawOvalBorder(_x, _y, TSZE, TSZE, sc.work_graph, bg_col_light, semi_white, sc.work);
    		PutShadow(_x+1, _y+1, TSZE, TSZE, true, 2);
    	}
    
    	return _x;
    }
    
    Из хаоса в космос
  • Я решил пока оставить фиксированный цвет тулбара и меню. Остальное настраивается.
    Spoiler:
    1.png
    1.png (23.64 KiB)
    Viewed 5779 times
  • Когда открыта панель поиска хорошо бы скрывать её по Escape.
    Shift+F3 не перемещает на предыдущий результат, может другая комбинация используется?
    Из хаоса в космос
  • Leency wrote:Когда открыта панель поиска хорошо бы скрывать её по Escape.
    Shift+F3 не перемещает на предыдущий результат, может другая комбинация используется?
    Сделано.
    Также, добавлен пункт меню view->x2 (увеличить шрифт) и увеличен стартовый размер окна.
  • CEDIT заменяет табы на пробелы? Нехорошо :)

    В Си не хватает подсветки для функций и всяких операндов вроде =,+,&&
    Ещё неплохо бы bool, dword, word, byte, true, false.

    На реальной машине полёт отличный.
    Spoiler:
    SCREEN_2.PNG
    SCREEN_2.PNG (980.35 KiB)
    Viewed 5591 times
    Из хаоса в космос
  • 1akron, в одной из бесед ВК, мы обсудили дальнейшие планы по улучшению редактора CEdit...один из участников пожаловался что не хватает вкладок для редактирования всяких нужных подключений библиотек и хедеров для дальнейшей сборки в единый проект после компиляции. P.S. Возможно не так выражаюсь, но все же вы наверняка поймете о чем я :)
  • Привет! Реально самый лучший текстовый редактор для кос! Собирать и запускать программы очень удобно! Не лагает не падает! Подсветка синтаксиса красота.
    Изобретайте колёса каждый раз, когда хотите написать новую программу.
  • Теперь иконки не 16х16 а 18х18. Пожалуйста, обновите программу.

    Также есть баг:

    1. изменить файл
    2. закрыть => отобразился диалог да/нет
    3. нажимаем Enter

    Факт. результат: создается новая строка в тексте
    Ожидаемый результат: файл сохранился, программа закрылась.
    Из хаоса в космос
  • Leency wrote:CEDIT заменяет табы на пробелы?
    Да, для упрощения сделал так, а теперь не знаю, можно ли как-нибудь это переделать. Простых решений я тут не вижу...
    Впрочем, все другие редакторы для KolibriOS делают так же.
    Leency wrote:В Си не хватает подсветки для функций и всяких операндов вроде =,+,&&
    Ещё неплохо бы bool, dword, word, byte, true, false.
    Я использовал список ключевых слов в Си из устаревшего стандарта C89.
    Если этого мало, то можно добавить недостающие ключевые слова по своему вкусу в файл /rd/1/settings/cedit.ini
    Сделать подсветку для символов операций (=,+,&&...) непросто. Дело в том, что "/" и "*" обозначают как операции так и комментарии. И для этого надо переделывать алгоритмы подсветки.
    Leency wrote:На реальной машине полёт отличный.
    На моей машине, при пролистывании, загружает процессор в 2 раза больше чем tinypad, но в 2 раза меньше, чем t_edit.
    Leency wrote:Теперь иконки не 16х16 а 18х18.
    Сделано.
    Leency wrote:Также есть баг...
    Сделано.
  • Привет.
    Редактор очень хороший, но хотел бы узнать, при запуске программы для сборки этой программе передаётся название файла или нет? не и так. может немного расстояние между краем окна и текстового поля уменьшить?
  • >> может немного расстояние между краем окна и текстового поля уменьшить?

    Учти что по 5 пикселей с каждой стороны это ободок окна. Визуально ободок 1 пиксель, на самом деле 5. Просто 4 внутренних линии цвета фона.
    Из хаоса в космос
  • akron1
    Спасибо.
    Жду табы.
    Ах да, ещё иконки в тулбаре моргают при перерисовке. Лучше сразу выводить нужные, а не поверх.
    Из хаоса в космос
  • Добрый день, akron1! Я на днях узнал что вы лично написали компилятор Oberon07. Вы просто молодцы! Я не был в курсе раннее. Когда будет обновление компилятора? Просто последняя версия выпущена вами в 2013 году. Может есть что улучшить на сегодня? :) :) :)
  • Who is online

    Users browsing this forum: Yandex [Bot] and 4 guests