Страницы: 1
hydrolizer
Благодарю )
Обработчики пользовательских событий обычно вешают на treechildren.
На самый верхний в дереве? А как мне определять по какой веке я кликаю, т.е как мне отличать что я кликнул по ветке а не по группе(у группу установлен атрибут: container=true)?
Доброго времени суток, на форм лежит tree, нужно по двойному нажатию по ветке выполнять своё действие. Обработчик на событие вешаю динамически:
function makeTreeItem(text, group) { group = group || false; var treeitem = document.createElement("treeitem"); var treerow = document.createElement("treerow"); var treecell = document.createElement("treecell"); treecell.setAttribute("label", text); treecell.setAttribute("src", "images/user.png"); if(group) { treecell.setAttribute("properties", "group"); treecell.setAttribute("src", "images/group.png"); treeitem.setAttribute("container", "true"); } else { treeitem.addEventListener("dblclick", onTreeItemDoubleClick, false); // доб. обработчик двойного нажатия } treeitem.appendChild(treerow); treerow.appendChild(treecell); return treeitem; }
Это функция добавления элемента в дерево, но почему-то когда я кликаю по ветке, ничего
…Да, это спасибо.
Я так понимаю теперь окно нельзя зацепить и переместить, как это можно исправить?
Повешать обработчик на событие onmousemove окна, и если нажата левая кнопка мыши(т.е при нажатии левой кнопки мыши ставим флаг, а в обработчике mousemove проверяем его), то двигаем окно, наверно как-то так :)
Благодарю. Так и думал, что придётся в сторону XBL копать. :)
стилизовать отдельные элементы интерфейса и делать их не системными — дурной тон.
лучше создать свою тему оформления и стилизовать xul как угодно (в том числе под gtk, как в pidgin).
Я имел ввиду возможность делать такие же элементы дерева, т.е сделать их выше, чтобы влезло пару строк текста(лучше разными шрифтами), сделать две картики(одну слева, одну справа) и т.д. Так с помощью тем можно сделать?
Доброго времени суток, интересует такой вопрос, можно ли в XUL стилизовать элементы дерева как например в IM Pidgin?
Смотрю по докам, судя по всему можно только менять цвета да шрифт :(
xterro пишетросто не все владеют технологиями, которые вы перечислили
дело не в технологиях а в месте.
полно форумов где тусуются те кто ищет работу кодера но аффтар почемуто решил поискать их тут.
похоже в той конторе в отдел кадров тоже понабирали по объявлениям.
Ну, я думаю большинство XUL кодеров тусуется здесь, поэтому ТС видимо и решил здесь поспрашивать.
Удивительный результат. Более 400 просмотров и ни одного желающего подработать. Что никому не нужны деньги?
Просто не все владеют технологиями, которые вы перечислили :D
Infocatcher пишетдолжн быть глобальным для всех окон, а то пользователь из другого окна сможет открыть еще одно
Разумеется. Например, поле объекта, созданного в jsm-модуле - контекст BackstagePass как раз глобален для всех окон, в отличие от контекста ChromeWindow.
У меня эта переменная определена в самом начале js -файла. Окно одно, так что думаю проблем не возникнет :)
P.S. А если действительно понадобится переменная, которую должны видеть все окна, где её определить? :|
xterro
window.openDialog возвращает переменную-ссылку на это окно. Сохраните её где-нибудь после открытия окна, а перед открытием проверяйте сохраненное значение, и если оно не null/undefined - проверяйте у переменной значение свойства closed - если окно было закрыто, то оно будет равно true.
Благодарю, оказывается всё просто, как всегда :)
покопай тут
https://developer.mozilla.org/en/Code_snippets/Windows
и там еще по ссылкамтам я смотрю у окна ID наличиствует
так что можно при открытии запоминать ид и в следующий раз если ид не пустой то окно открывалось и далее ищем его по ид если находим то лезем к нему если нет то окно уже закрыли и значит открываем новое.
подробнее с примерами не помогу - надо самому разбираться.
Спасибо за ссылку, по ней понял некоторую мысль - похоже можно использовать nsIWindowWatcher. При первоначальном создании окна задачать ему какое-нибдуь имя, и при следующем нажатии кнопки поискать окно по этому имени, если нашлось, то добавляем вкладку, если нет, то создаём новое :)
Доброго времени суток. Есть такой момент, нажимаю на кнопку, по ней делаю открытие своего окна(xul файл) через window.openDialog(...). Допустим, я второй раз нажимаю на кнопку, как мне проверить что окно уже открыто? (я хочу, если оно уже открыто, то просто добавить в него вкладку). Думал передавать в openDialog() последним параметром логическую переменную, и повешать на окнообработчик onload,в котором устанавливать её в true, и эту же переменную проверять при нажатии на кнопку, мол если она true то окно не открываем, а работаем с текущим? Только вот ещё один момент, что будет являться текущим то? Или к открытому окну можно как-то обращаться по идентификатору(или имени, оно передаётся вторым параметром в openDialog())?
xterro
В смысле, если у вас уже есть готовые xul в виде файла, то в чем проблема? Открывать в новом окне - вообще просто:Выделить кодКод:
window.openDialog("chrome://myextension/content/my-some-file.xul", "_blank", "chrome,dialog,modal,resizable,centerscreen");в новой вкладке - через размещение в новой вкладке iframe, и задание для него contentDocument.location, указывающий на ваш xul (tabbrowser в расширениях использовать нельзя, он только для главного окна).
Я так понимаю это в контексте расширения? А если я делаю отдельное приложение, то методы те же самые(openDialog, iframe и contentDocument)? Ещё такой момент, если я использую xulrunner, сделал структуру каталогов как указано в докуметации, могу ли я при указании пути использовать префикс chrome://, как он используется?
…xterro
У вас xul создается динамически?
В смысле? Задача такая: есть некоторое окно с вкладками и списком(деревом), пользователь кликает по элементы списка и в tabs добавляется вкладка с моим xul, который берётся из файла(по крайней мере я так предполагаю делать, т.е наготовить всех необходимых "форм" и открывать их во вкладке или отдельном окне, если в отдельном окне, то скажем, пользователь кликает правой кнопкой мыши по элементу списка и выбирает - ОТкрыть в новом окне, тогда создаётся новое окно и в него загружается мой xul файл), потому как зашивать в JS код описание xul формы, думаю не есть гуд. Как то так... я думаю.
Присоединяюсь к вопросу, но только интересует добавление своего xul-а на вкладку в отдельном окне(отдельно приложение, запускаемое при помощи xulrunner-а), а не в браузере. Т.е как добавить свой xul на вкладку или открыть его в отдельном окне(не браузера)? :)
Lain_13 пишеттам-же js и css файлы рядом
Только в css там ссылка на xbl-связку, если что. Окошко просмотра кода страниц не использует для подсветки обычный css, т.к. оно по сути - то же окно браузера (во viewSource.xul внутри и используется xul:browser). В этом окне страницы отображаются по спец. протоколу view-source: - можно набрать в основном окне FF
view-source:http://forum.mozilla-russia.org/viewtopic.php?pid=528106#p528106
- и увидеть то, что можно увидеть в окне просмотра кода. Т.е. подсветка синтаксиса формируется где-то в недрах реализации протокола view-source: , и так просто рассмотреть реализацию этой подсветки вряд ли получится.
Да и у элемента browser, судя по документации нет свойства разрешающего редактирование документа :(
А вот что такое source-view:
View-source (англ.Просмотр источника) — это URL схема используемая некоторыми браузерами для построения URL-адреса web-страницы, который ссылается на источник данно
…
xterro
omni.jar\chrome\toolkit\content\global\viewSource.xul (там-же js и css файлы рядом)
Файл omni.jar лежит в папке фокса, переименуй его в zip и распакуй.
Благодарю, уже копаюсь там. Нашёл там ещё какой-то scratchpad :o
Кстати, ещё стоит посмотреть на код окна просмотра кода страницы самого FireFox — там уже есть подсветка синтаксиса.
Кстати да, на него я тоже гляну . спасибо. А как он называется?
Т.е как я понял можно использовать либо RichTextEdit из XUL, либо просто стандартный TEXTAREA с JS. И последний момент, а нумерацию строк сильно сложно реализовывать? Я так понимаю, что на элементе, будь то XUL элемент или стандартный textarea рисовать нельзя(чтобы отрисовать номера строк). :sick:
xterro
Обычно подсветка крутится отдельным фоновым потоком и после первого глобального прохода рассматриваются только изменения в текущей строке. Это не ресурсоёмкая операция. Т.е. главное правильно воспользоваться найденным скриптом, а не тупо переанализировать весь документ из-за изменения одной буквы. Можно даже навернуть анализ структуры документа для упрощения поиска потерянных закрывающих тэгов. Это же поможет выделять блоки комментариев и подобную блоковую многострочную чушь. Потом можно сверху навернуть анализ валидности объявления всяческих объектов, но это уже сложно и нудно, зато даёт возможность реализовать простенькое автодополнение.02-11-2011 18:39:37
Вот, кстати, тут поищи.
Благодарствую, только там я уже сморел. Все проекты - это просто рисовалки интерфейса, с внешними редакторами. Единственное - Komodo, но там код закрыт. ещё такой момент, какой-нибудь из текстовых полей вообще поддерживает раск
…А как соотносятся цель задачи, и инструмент написания кода?
Инструмент написания кода - никак. Текстовый редактор хочу иметь "встроенным"(родным).Я понимаю, что можно вызывать внешний, но хочется "нативный", и это принципиальная позиция. Возможно ли такое вообще?
P.S. Смотрю на скрипты подсветки синтаксина(написаны на JS), там, некий текст загрузился, скрипт его обработал, "обрамил стилями" и готово, а в редакторе же нужно как-то отслеживать то что набирает пользователь в поле ввода, то-ли он ввёл ключевое слово и к нему нужно применить тег подсветки, то-ли это не ключевое и подсвечиваь его не надо. И получаеся так нужно на каждый ввод символа. (
У меня даже приблизительно не получается догадаться зачем тебе _на столько_ громоздкий текстовый редактор.
Это как если бы мне для хранения таблицы из БД в памяти понадобился бы MS Excel.
Вы будете смеяться, но в софтине BO Excelsius он кому-то именно в такой форме и понадобился.Вам правда мало хороших быстрых редакторов?
Или ты неправильно сформулировал вопрос и тебе нужен текстовый редактор с подстветкой синтаксиса XUL? Так это обычный XML.
Просто изучаю возможность создания морды к БД именно на XUL+JS. Отображение табличной информации в элементе типа listbox или tree(если понадобится группировка). С возможностью править некоторые многострочные записи, в которых нужно подсветить некоторые ключевые слова. Конечно, пока только изучаю возможность создания такового. Вот в связи с этим и появился такой вопрос. Например есть же <editor>. На его базе можно как-нибудь сделать? Так-же интересует вопрос: "потянет" ли listbox(tree) отображение, скажем 1000 (2000, 5000,
…Доброго времени суток. Интересует текстовый редактор на XUL с подсветкой синтаксиса. Существует ли такой в природе. Меня больше интересует сам компонент-"редактор" с возможностью подсветки синтаксиса и нумерацией строк. Или если не существует такого, может натолкнёте на идею как создать? Зараннее благодарен [mozilla]
Страницы: 1