LINUX.ORG.RU

Сообщения nkondratev

 

[Emacs] Форматирование XML

Добрый день.

Необходимо отформатировать XML документ с ограничением длины строки.

Вызывая функцию sgml-pretty-print при nXML + Auto-Fill модах emacs надолго «задумывается» даже над сравнительно маленьким регионом.

Существует ли способ выполнить эту задачу эффективнее без использования сторонних форматтеров?

 

nkondratev
()

[C, gtk+] Обработчики сигналов

Добрый день. Имеется небольшой gui, сделанный в glade. Большинство обработчиков представляют из себя функции подобного вида:

static void
on_button_input_fk_toggled(GtkWidget *btn, control_panel *cp)
{
	__on_button_toggled(btn, cp, 0, 0);
}

static void
on_button_reset_avvi_toggled(GtkWidget *btn, control_panel *cp)
{
	__on_button_toggled(btn, cp, 0, 1);
}
/* ...
 * и так больше 30 обработчиков, различающихся только последними двумя параметрами
 */

Также «мозолит» глаза код подключения сигналов:

	g_signal_connect(gtk_builder_get_object(builder, "button_reset"), "toggled",
			 G_CALLBACK(on_button_reset_toggled), cp);
	g_signal_connect(gtk_builder_get_object(builder, "button_enter"), "toggled",
			 G_CALLBACK(on_button_enter_toggled), cp);
	g_signal_connect(gtk_builder_get_object(builder, "button_self_verification"), "toggled",
			 G_CALLBACK(on_button_self_verification_toggled), cp);
	g_signal_connect(gtk_builder_get_object(builder, "button_4v"), "toggled",
			 G_CALLBACK(on_button_4v_toggled), cp);

Код основной части программы значительно меньше этого «добра».

Вопросы:

  1. Как вы избавляетесь от подобного кода? (варианты)
  2. Стоит ли это вообще делать, или это вполне нормальный код?
nkondratev
()

[latex]Таблицы

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

\captionsetup[table]{singlelinecheck=off,justification=raggedleft}
Это работает, но выравнивает по правому краю страницы, но не таблицы, смотрится не очень красиво.

Может быть нужно использовать окружение minipage?

 

nkondratev
()

[latex/disser]Изменение стиля рубрикации

Добрый день, может кто знает как переопределить \chapter в disser. Необходимо:

1. Убрать слово «Глава».

2. После цифры ставить точку.

3. Само название расположить в одной строке с цифрой.

\renewcommand{\chaptername}{} убирает «Глава», но цифра остается на отдельной строке.

Ну или хоть в каком направлении копать и удастся ли это сделать без изменения самомго класса disser.cls (особенно п. 3).

nkondratev
()

[tcl]Генерация событий

Каким образом в тикле сделать циклическую асинхронную генерацию событий по таймеру. Т.е. нужно чтобы периодически вызывалась команда, при этом осуществлялась обработка других событий. Должно быть простое решение, наподобие закоментированного цикла, если кто подскажет буду благодарен. Ато придется это организовывать через потоки.

proc main {} {
    global	exit_trigger
    wm title . "Regulating model"
    wm geometry . +200+100

    grid [frame .f] -sticky news 
    canvas [set c .f.c] -width 1000 -height 500 -background white
    grid $c -sticky news -padx 5 -columnspan 2
    set line_height 250
    put_line $c $line_height
     
    grid [button .f.config_button -text Setup -command main_exit] -sticky we -row 1 -column 0
    grid [button .f.quit -text Exit -command main_exit] -sticky we -row 1 -column 1 
    focus .f.quit
    bind .f.quit <Return> main_exit
    bind . <Escape> main_exit

    set exit_trigger 0
    interp alias {} main_exit {} set exit_trigger 1
    vwait exit_trigger

#   while "!$exit_trigger" {
#	    after 500
#	    exec_periodical_proc
#	    if "$exit_trigger > 0" break;
#    }

    exit
}

 

nkondratev
()

RSS подписка на новые темы