07
Before Width: | Height: | Size: 588 B After Width: | Height: | Size: 588 B |
BIN
res/img/folder.png
Normal file
After Width: | Height: | Size: 565 B |
BIN
res/img/icon.png
Before Width: | Height: | Size: 764 B After Width: | Height: | Size: 341 B |
BIN
res/img/key.png
Normal file
After Width: | Height: | Size: 2.5 KiB |
BIN
res/img/midifile.png
Normal file
After Width: | Height: | Size: 652 B |
Before Width: | Height: | Size: 543 B After Width: | Height: | Size: 543 B |
BIN
res/img/ua.png
Normal file
After Width: | Height: | Size: 90 B |
206
res/lang/instr_ua.loc
Normal file
@ -0,0 +1,206 @@
|
||||
Ударні
|
||||
Рояль
|
||||
Концертний (освітлений) рояль
|
||||
Електронний рояль
|
||||
Засмучене (таперське) піаніно
|
||||
Електропіано
|
||||
Електропіано 2
|
||||
Клавесин
|
||||
Клавінета (клавесин 2)
|
||||
Челеста
|
||||
Дзвіночки (пляшки)
|
||||
Музична скринька
|
||||
Вібрафон
|
||||
Марімба
|
||||
Ксилофон
|
||||
Дзвони (трубчасті)
|
||||
Цимбали (сантур)
|
||||
Електронний орган
|
||||
Орган з перкусією (з ударною атакою)
|
||||
Рок-орган
|
||||
Церковний орган
|
||||
Дерев'яний (язичковий) органчик
|
||||
Акордеон
|
||||
Гармоніка
|
||||
'Танго'-акордеон
|
||||
Гітара-нейлон
|
||||
Гітара-сталь
|
||||
Джазова електрогітара
|
||||
Акустична електрогітара
|
||||
Приглушена електрогітара
|
||||
Овердрайв (перевантаження)
|
||||
Дісторшн (спотворення)
|
||||
Флажолет
|
||||
Контрабас-піцікато
|
||||
Бас-гітара пальцевим щипком
|
||||
Бас-гітара медіатором
|
||||
Бездадовий бас
|
||||
Бас-слеп 1
|
||||
Бас-слеп 2
|
||||
Сінт-бас 1
|
||||
Сінт-бас 2
|
||||
Скрипка
|
||||
Альт
|
||||
Віолончель
|
||||
Контрабас
|
||||
Тремоло струнних
|
||||
Піцікато струнних
|
||||
Арфа
|
||||
Литаври
|
||||
Струнна група 1
|
||||
Струнна група 2
|
||||
Синтетичні струнні 1
|
||||
Синтетичні струнні 2
|
||||
Хор на склад 'а'
|
||||
Голос на склад 'про'
|
||||
Синтетичний голос
|
||||
Удар (весь оркестр)
|
||||
Труба
|
||||
Тромбон
|
||||
Туба
|
||||
Труба з сурдини
|
||||
Валторна
|
||||
Мідна група
|
||||
Синтетичні мідні 1
|
||||
Синтетичні мідні 2
|
||||
Сопрано-саксофон
|
||||
Альт-саксофон
|
||||
Тенор-саксофон
|
||||
Баритон-саксофон
|
||||
Гобой
|
||||
Англійський ріжок
|
||||
Фагот
|
||||
Кларнет
|
||||
Флейта-пікколо
|
||||
Флейта
|
||||
Блокфлейта
|
||||
Пан-флейта
|
||||
Подув в пляшки
|
||||
Шакухачі
|
||||
Свисток
|
||||
Окарина
|
||||
Соло-гітара (прямокутна хвиля)
|
||||
Соло-гітара (синусоїдальна хвиля)
|
||||
Calliope-гітара
|
||||
Chiff-гітара
|
||||
Charang-гітара
|
||||
Соло-гітара (голосовий тембр)
|
||||
Соло-гітара (з квінтове обертоном)
|
||||
Бас і соло-гітара
|
||||
Синтезаторний звук нью-ейдж
|
||||
Теплий синт-звук
|
||||
Полісінтезатор
|
||||
Сінт-хор
|
||||
Повітряний (смичковий синт-звук)
|
||||
Металевий синт
|
||||
Ореол
|
||||
Розгортається (хитний) звук
|
||||
Дощ
|
||||
Звукова доріжка
|
||||
Кришталь (кристал)
|
||||
Атмосфера
|
||||
Яскравість
|
||||
Гобліни
|
||||
(Качаюче) відлуння
|
||||
Зірковий (scifi)
|
||||
Ситар
|
||||
Банджо
|
||||
Шаміса
|
||||
Кото
|
||||
Калімбей
|
||||
Волинка (bagpipe)
|
||||
Вулична скрипка
|
||||
Санаї (shanai)
|
||||
Дзвіночок
|
||||
Агого
|
||||
Сталеві барабани
|
||||
Гольцтон (дерев'яні коробочки)
|
||||
Таіко
|
||||
Мелодік том
|
||||
Електронні барабани
|
||||
Тарілка 'задом наперед' (реверс)
|
||||
Свист гітарної струни (шум ладів)
|
||||
Придих
|
||||
Прибій
|
||||
Птахи
|
||||
Телефонний дзвінок
|
||||
Вертоліт
|
||||
Алодісменти
|
||||
Постріл
|
||||
Фортепіано
|
||||
Хроматіккаа і перкусія
|
||||
Орган
|
||||
Гітара
|
||||
Бас
|
||||
Акорди і оркестрові
|
||||
Ансамбль
|
||||
Мідні
|
||||
Очерет
|
||||
Труба
|
||||
Ведучий синтезатор
|
||||
Сітезатор 2-й голос
|
||||
Сінт-ефекти
|
||||
Народні
|
||||
Перкусія
|
||||
Звукові ефекти
|
||||
Висока q
|
||||
Слеп
|
||||
Дряпання (від себе)
|
||||
Дряпання (до себе)
|
||||
Барабанні палички
|
||||
Електронний метроном
|
||||
Метроном
|
||||
Дзвінкий метроном
|
||||
Акустичний великий барабан
|
||||
Великий барабан
|
||||
Удар по ободу
|
||||
Акустичний малий барабан
|
||||
Бавовна в долоні
|
||||
Електричний малий барабан
|
||||
Низький підлоговий томтом
|
||||
Закритий хет
|
||||
Високий підлоговий томтом
|
||||
Хет (педаллю)
|
||||
Низький томтом
|
||||
Відкритий хет
|
||||
Низький середній томтом
|
||||
Високий середній томтом
|
||||
Креш-тарілка
|
||||
Високий томтом
|
||||
Райд-тарілка
|
||||
Китайська тарілка
|
||||
Райд-тарілка (по центральній частині)
|
||||
Бубон
|
||||
Сплеш-тарілка
|
||||
Коровій (альпійський) дзвіночок
|
||||
Креш-тарілка 2
|
||||
Вібруючий слеп
|
||||
Райд-тарілка 2
|
||||
Високий бонго
|
||||
Низький бонго
|
||||
Закритий високий бонго
|
||||
Відкритий високий бонго
|
||||
Низька конга
|
||||
Високий тімбал
|
||||
Низький тімбал
|
||||
Високий агого
|
||||
Низький агого
|
||||
Cabasa кабас
|
||||
Маракас
|
||||
Короткий свисток
|
||||
Довгий свисток
|
||||
Коротке гуїро
|
||||
Довге гуїро
|
||||
Клавес
|
||||
Висока коробочка
|
||||
Низька коробочка
|
||||
Закрита куіка
|
||||
Відкрита куіка
|
||||
Закритий трикутник
|
||||
Відкритий трикутник
|
||||
Шейкер
|
||||
Бубонці
|
||||
Бунчук
|
||||
Кастаньєти
|
||||
Закритий сурдо
|
||||
Відкритий сурдо
|
@ -3,7 +3,7 @@ package main;
|
||||
import javax.microedition.lcdui.*;
|
||||
|
||||
/**
|
||||
* Класс параметров
|
||||
* Êëàññ ïàðàìåòðîâ è êîíñòàíò
|
||||
* @author aNNiMON
|
||||
*/
|
||||
public class P {
|
||||
@ -17,6 +17,16 @@ public class P {
|
||||
/** Æèðíûé ñðåäíèé øðèôò */
|
||||
public static final Font medBold = Font.getFont(Font.FACE_SYSTEM, Font.STYLE_BOLD, Font.SIZE_MEDIUM);
|
||||
|
||||
/** Çíà÷îê íà ôîíå */
|
||||
public static Image bgKey;
|
||||
static {
|
||||
try {
|
||||
bgKey = Image.createImage("/img/key.png");
|
||||
} catch (java.io.IOException ex) {
|
||||
bgKey = Image.createImage(1, 1);
|
||||
}
|
||||
}
|
||||
|
||||
/** Êîìàíäà îòìåíû */
|
||||
public static Command comCancel;
|
||||
|
||||
|
@ -12,6 +12,7 @@ MIDedit 2.1 / 3.0
|
||||
- Исправил ошибку, при которой после длительной работы в редакторе могли появляться глюки с отрисовкой экрана.
|
||||
- Исправил ошибку с некорректной скоростью прокрутки курсора при воспроизведении, если был изменен размер ячейки ноты в настройках.
|
||||
- Кое-где подправил и оптимизировал код, добавил описания.
|
||||
- Другие мелкие исправления.
|
||||
|
||||
********
|
||||
Добавить украинский язык.
|
||||
|
@ -7,6 +7,7 @@ import javax.microedition.lcdui.*;
|
||||
import main.L;
|
||||
import main.P;
|
||||
import main.Main;
|
||||
import ui.Instruments;
|
||||
import ui.WaitCanvas;
|
||||
|
||||
/**
|
||||
@ -14,19 +15,7 @@ import ui.WaitCanvas;
|
||||
* @author user
|
||||
* @author aNNiMON (ìîä)
|
||||
*/
|
||||
public class CompositionForm extends Form implements CommandListener, Runnable, ItemCommandListener {
|
||||
|
||||
/**
|
||||
* Êîëè÷åñòâî ãðóïï èñíòðóìåíòîâ.
|
||||
* Èñïîëüçóåòñÿ â ôîðìå âûáîðà ïðè äîáàâëåíèè/çàìåíå èíñòðóìåíòà
|
||||
*/
|
||||
private static final int GROUPS_OF_INSTRUMENTS = 16;
|
||||
|
||||
/**
|
||||
* Êîëè÷åñòâî èíñòðóìåíòîâ íà ãðóïïó.
|
||||
* Èñïîëüçóåòñÿ â ôîðìå âûáîðà ïðè äîáàâëåíèè/çàìåíå èíñòðóìåíòà
|
||||
*/
|
||||
private static final int INSTRUMENTS_IN_GROUP = 8;
|
||||
public class CompositionForm extends Form implements CommandListener, Runnable {
|
||||
|
||||
/** Ìàêñèìàëüíîå êîëè÷åñòâî øàãîâ ïðîïóñêà */
|
||||
private static final byte SEEK_GAUGE_MAX = 10;
|
||||
@ -37,11 +26,11 @@ public class CompositionForm extends Form implements CommandListener, Runnable,
|
||||
|
||||
|
||||
/**
|
||||
* Ôîðìà âûáîðà èíñòðóìåíòîâ
|
||||
* Ýêðàí âûáîðà èíñòðóìåíòîâ
|
||||
* Èñïîëüçóåòñÿ ïðè äîáàâëåíèè/çàìåíå èíñòðóìåíòà.
|
||||
* Ñòàòè÷åñêàÿ ïåðåìåííàÿ âçÿòà äëÿ îïòèìèçàöèè, ÷òîáû êàæäûé ðàç íå ãåíåðèðîâàòü.
|
||||
*/
|
||||
private static Form listInstrumentsForm;
|
||||
private static Canvas listInstrumentsCanvas;
|
||||
|
||||
/** Ýêçìåïëÿð ìèäëåòà */
|
||||
private Main control;
|
||||
@ -232,24 +221,18 @@ public class CompositionForm extends Form implements CommandListener, Runnable,
|
||||
return chans;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
* @param c
|
||||
* @param i
|
||||
* @param play âûáðàíà êîìàíäà ïðîèãðûâàòü èëè ok
|
||||
* @param instrName
|
||||
*/
|
||||
public void commandAction(Command c, Item i) {
|
||||
String instrName;
|
||||
public void selectInstrument(boolean play, String instrName) {
|
||||
int instrumNum;
|
||||
model.stopPlay();
|
||||
if (i instanceof StringItem) {
|
||||
instrName = Constants.getInstrName(0);
|
||||
instrumNum = 0;
|
||||
}
|
||||
else {
|
||||
instrName = ((ChoiceGroup) i).getString(((ChoiceGroup) i).getSelectedIndex());
|
||||
instrumNum = Constants.instrVectorArr.indexOf(instrName)+1;
|
||||
}
|
||||
if (c == play) {
|
||||
if(instrName.equals(Constants.getInstrName(0))) instrumNum = -1;
|
||||
else instrumNum = Constants.instrVectorArr.indexOf(instrName);
|
||||
if (play) {
|
||||
int channel = -1;
|
||||
int lengthOfChannel = 0;
|
||||
try {
|
||||
@ -260,25 +243,26 @@ public class CompositionForm extends Form implements CommandListener, Runnable,
|
||||
}
|
||||
if (channel == Constants.DRUMS_CHANNEL || isAdd || lengthOfChannel < 3) {
|
||||
try {
|
||||
model.playTest((byte) (instrumNum - 1));
|
||||
model.playTest((byte) instrumNum);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
} else {
|
||||
try {
|
||||
model.playTrack(composition, channel, instrumNum - 1);
|
||||
model.playTrack(composition, channel, instrumNum);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
try {
|
||||
model.playTest((byte) (instrumNum - 1));
|
||||
model.playTest((byte) instrumNum);
|
||||
} catch (Exception ex) {
|
||||
ex.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
} else if (c == ok) {
|
||||
} else {
|
||||
// ok
|
||||
if (isAdd) {
|
||||
byte channel = composition.addInstrument(instrumNum - 1);
|
||||
byte channel = composition.addInstrument(instrumNum);
|
||||
if (channel != -1) {
|
||||
choiñeInstrument.appendChannel(instrName, channel);
|
||||
} else {
|
||||
@ -294,7 +278,7 @@ public class CompositionForm extends Form implements CommandListener, Runnable,
|
||||
int channel = choiñeInstrument.getSelectedChannel();
|
||||
if (channel != -1 && channel != Constants.DRUMS_CHANNEL) {
|
||||
choiñeInstrument.setChannel(choiñeInstrument.getSelectedIndex(), instrName, (byte) channel);
|
||||
composition.setInstrument(channel, instrumNum - 1);
|
||||
composition.setInstrument(channel, instrumNum);
|
||||
}
|
||||
} catch (IllegalAccessException ex) {
|
||||
ex.printStackTrace();
|
||||
@ -479,28 +463,11 @@ public class CompositionForm extends Form implements CommandListener, Runnable,
|
||||
}
|
||||
|
||||
|
||||
private Form getListOfInstruments() {
|
||||
if (listInstrumentsForm == null) {
|
||||
ChoiceGroup[] groupsChoiseGroup = new ChoiceGroup[GROUPS_OF_INSTRUMENTS];
|
||||
for (int i = 0; i < GROUPS_OF_INSTRUMENTS; i++) {
|
||||
String[] listOfElements = new String[INSTRUMENTS_IN_GROUP];
|
||||
System.arraycopy(L.instr, i*INSTRUMENTS_IN_GROUP+1, listOfElements,0, INSTRUMENTS_IN_GROUP);
|
||||
|
||||
groupsChoiseGroup[i] = new ChoiceGroup(Constants.getInstrName(129 + i), ChoiceGroup.POPUP, listOfElements, null);
|
||||
groupsChoiseGroup[i].addCommand(play);
|
||||
groupsChoiseGroup[i].addCommand(ok);
|
||||
groupsChoiseGroup[i].setItemCommandListener(this);
|
||||
private Canvas getListOfInstruments() {
|
||||
if (listInstrumentsCanvas == null) {
|
||||
listInstrumentsCanvas = new Instruments();
|
||||
}
|
||||
listInstrumentsForm = new Form(L.str[L.instruments], groupsChoiseGroup);
|
||||
Item drums = new StringItem(Constants.getInstrName(0), null);
|
||||
drums.addCommand(ok);
|
||||
drums.setItemCommandListener(this);
|
||||
listInstrumentsForm.append(drums);
|
||||
listInstrumentsForm.addCommand(P.comCancel);
|
||||
listInstrumentsForm.setCommandListener(this);
|
||||
}
|
||||
|
||||
return listInstrumentsForm;
|
||||
return listInstrumentsCanvas;
|
||||
}
|
||||
|
||||
|
||||
|
@ -1234,7 +1234,7 @@ public abstract class MixerCanvas extends Canvas implements Runnable {
|
||||
m1 = 2;
|
||||
g.setFont(P.smPlain);
|
||||
g.drawString(getNoteFromLine(curY) + " " + Constants.getInstrName(getNoteFromLine(curY) - DrumsCanvas.drumsShift + 145),
|
||||
m1, yIndent + 3, Graphics.BOTTOM | Graphics.LEFT);
|
||||
m1, yIndent + 5, Graphics.BOTTOM | Graphics.LEFT);
|
||||
}
|
||||
|
||||
break;
|
||||
|
@ -45,7 +45,7 @@ public class JSR75File extends AbstractFile {
|
||||
break;
|
||||
}
|
||||
}
|
||||
//vector.addElement(s1);
|
||||
// vector.addElement(s1);
|
||||
}
|
||||
if (currDir != null) currDir.close();
|
||||
} catch (IOException ion) {
|
||||
|
@ -51,7 +51,7 @@ public class FileManager extends Canvas {
|
||||
private PreviewPlayer pw;
|
||||
|
||||
/** Èçîáðàæåíèÿ è èêîíêè ãðóïï ôàéëîâ */
|
||||
//private Image folderIcon, imageIcon, fileIcon, fontIcon, videoIcon;
|
||||
private Image folderIcon, midiIcon;
|
||||
|
||||
/** Ñïèñîê ôàéëîâ è ïàïîê */
|
||||
private String[] data;
|
||||
@ -180,6 +180,7 @@ public class FileManager extends Canvas {
|
||||
protected void paint(Graphics g) {
|
||||
g.setColor(P.backgrnd);
|
||||
g.fillRect(0, 0, w, h);
|
||||
g.drawImage(P.bgKey, w, h - UI.getSoftBarHeight() - 2, Graphics.RIGHT | Graphics.BOTTOM);
|
||||
drawFiles(g);
|
||||
if (showMenu) {
|
||||
drawMenu(g);
|
||||
@ -204,10 +205,9 @@ public class FileManager extends Canvas {
|
||||
g.setFont(P.smBold);
|
||||
for (int i = startPrintFile; i < numFiles; i++) {
|
||||
// Èêîíêà òèïà ôàéëà
|
||||
/*Image tmp = fileIcon;
|
||||
Image tmp = midiIcon;
|
||||
if (data[i].indexOf("/") != -1) tmp = folderIcon;
|
||||
else if (getType(TypeMid, data[i])) tmp = imageIcon;
|
||||
g.drawImage(tmp, 1, FileY + SH_HEIGHT + 1, 0);*/
|
||||
g.drawImage(tmp, 1, FileY + SH_HEIGHT + 1, 0);
|
||||
// Òåêñò
|
||||
int col = P.fmtextnc;
|
||||
if (FileY == CursorY) col = P.fmtextcur;
|
||||
@ -348,15 +348,10 @@ public class FileManager extends Canvas {
|
||||
|
||||
/** Çàãðóçêà èçîáðàæåíèé */
|
||||
private void loadImages() {
|
||||
/*Image allimg = new GetImage().loadImages(0);//icons
|
||||
try {
|
||||
imageIcon = Image.createImage(allimg, 0, 0, 16, 15, 0);
|
||||
folderIcon = Image.createImage(allimg, 16, 0, 14, 15, 0);
|
||||
fileIcon = Image.createImage(allimg, 30, 0, 13, 15, 0);
|
||||
videoIcon = Image.createImage(allimg, 43, 0, 13, 15, 0);
|
||||
fontIcon = Image.createImage(allimg, 57, 0, 13, 15, 0);
|
||||
} catch (Exception ioe) {
|
||||
}*/
|
||||
folderIcon = Image.createImage("/img/folder.png");
|
||||
midiIcon = Image.createImage("/img/midifile.png");
|
||||
} catch (Exception ioe) {}
|
||||
}
|
||||
|
||||
/**
|
||||
|
245
src/ui/Instruments.java
Normal file
@ -0,0 +1,245 @@
|
||||
package ui;
|
||||
|
||||
import main.P;
|
||||
import main.Main;
|
||||
import main.Key;
|
||||
import main.L;
|
||||
import javax.microedition.lcdui.*;
|
||||
import midedit.Constants;
|
||||
|
||||
/**
|
||||
* Ńďčńîę číńňđóěĺíňîâ â ďđîăđŕěěĺ
|
||||
* @author aNNiMON
|
||||
*/
|
||||
public class Instruments extends Canvas {
|
||||
|
||||
/**
|
||||
* Ęîëč÷ĺńňâî ăđóďď číńňđóěĺíňîâ.
|
||||
* Čńďîëüçóĺňń˙ â ôîđěĺ âűáîđŕ ďđč äîáŕâëĺíčč/çŕěĺíĺ číńňđóěĺíňŕ
|
||||
*/
|
||||
private static final int GROUPS_OF_INSTRUMENTS = 16;
|
||||
|
||||
/**
|
||||
* Ęîëč÷ĺńňâî číńňđóěĺíňîâ íŕ ăđóďďó.
|
||||
* Čńďîëüçóĺňń˙ â ôîđěĺ âűáîđŕ ďđč äîáŕâëĺíčč/çŕěĺíĺ číńňđóěĺíňŕ
|
||||
*/
|
||||
private static final int INSTRUMENTS_IN_GROUP = 8;
|
||||
|
||||
/** Đĺćčě ďîęŕçŕ ăđóďď číńňđóěĺíňîâ */
|
||||
private static final byte MENU_MODE = 0;
|
||||
/** Đŕçěĺđ ýęđŕíŕ */
|
||||
private int w, h;
|
||||
|
||||
/** Çŕăîëîâîę */
|
||||
private String title;
|
||||
|
||||
/** Ěĺíţ */
|
||||
private String[] menu;
|
||||
/** Âűäĺëĺííűé ďóíęň ěĺíţ */
|
||||
private int cu = 0;
|
||||
|
||||
/** Đĺćčě (ěĺíţ, číńňđóěĺíňű) */
|
||||
private byte mode;
|
||||
|
||||
private int iconsSize = 2;
|
||||
|
||||
private int FileY, CursorY, stFh, startPrintFile;
|
||||
private int FILE_HEIGHT;
|
||||
|
||||
/** Âđĺě˙ äë˙ double-ęëčęŕ â touchscreen */
|
||||
private long time;
|
||||
|
||||
/**
|
||||
* Ńîçäŕňü ěĺíţ ń ňčďîě mode
|
||||
*/
|
||||
public Instruments() {
|
||||
setFullScreenMode(true);
|
||||
w = getWidth();
|
||||
h = getHeight();
|
||||
|
||||
mode = MENU_MODE;
|
||||
|
||||
FILE_HEIGHT = P.medPlain.getHeight() + 2;
|
||||
stFh = P.medPlain.getHeight() + P.medPlain.getHeight() / 2;
|
||||
cu = CursorY = FileY = startPrintFile = 0;
|
||||
updateItems();
|
||||
}
|
||||
|
||||
private void updateItems() {
|
||||
cu = CursorY = FileY = startPrintFile = 0;
|
||||
if(mode == MENU_MODE) {
|
||||
title = L.str[L.instruments];
|
||||
menu = new String[GROUPS_OF_INSTRUMENTS + 1];
|
||||
for (int i = 0; i < menu.length; i++) {
|
||||
menu[i] = Constants.getInstrName(129 + i);
|
||||
}
|
||||
// Óäŕđíűĺ
|
||||
menu[menu.length - 1] = Constants.getInstrName(0);
|
||||
} else {
|
||||
menu = new String[INSTRUMENTS_IN_GROUP];
|
||||
System.arraycopy(L.instr, mode*INSTRUMENTS_IN_GROUP+1, menu, 0, INSTRUMENTS_IN_GROUP);
|
||||
}
|
||||
repaint();
|
||||
}
|
||||
|
||||
|
||||
protected void sizeChanged(int w, int h) {
|
||||
this.w = getWidth();
|
||||
this.h = getHeight();
|
||||
super.sizeChanged(w, h);
|
||||
}
|
||||
|
||||
protected void paint(Graphics g) {
|
||||
// Î÷čńňęŕ ýęđŕíŕ
|
||||
g.setColor(P.backgrnd);
|
||||
g.fillRect(0, 0, w, h);
|
||||
|
||||
g.drawImage(P.bgKey, w, h - UI.getSoftBarHeight() - 2, Graphics.RIGHT | Graphics.BOTTOM);
|
||||
|
||||
UI.drawTitle(g, title);
|
||||
if(mode == MENU_MODE) {
|
||||
UI.drawSoftBar(g, "", L.str[L.cancel]);
|
||||
} else {
|
||||
UI.drawSoftBar(g, L.str[L.play], L.str[L.back]);
|
||||
}
|
||||
|
||||
g.setFont(P.medBold);
|
||||
|
||||
g.setColor(P.fmback1);
|
||||
g.translate(0, stFh);
|
||||
// Ęóđńîđ
|
||||
g.setColor(P.obv);
|
||||
g.fillRect(-1, CursorY, w, FILE_HEIGHT-1);
|
||||
g.setColor(P.fmbord);
|
||||
g.drawRect(-1, CursorY-1, w, FILE_HEIGHT);
|
||||
|
||||
FileY = 0;
|
||||
// Âűâîäčě ďóíęňű ěĺíţ
|
||||
for (int i = startPrintFile; i < menu.length; i++) {
|
||||
g.setColor(P.fmtextnc);
|
||||
final String s = menu[i];
|
||||
if (FileY == CursorY) {
|
||||
g.setColor(P.fmbord);
|
||||
g.drawString(s, iconsSize + 4, FileY + iconsSize / 4, Graphics.TOP | Graphics.LEFT);
|
||||
g.setColor(P.fmtextcur);
|
||||
}
|
||||
|
||||
// g.drawImage(icons[id], iconsSize + 2, FileY + 1, 24);
|
||||
|
||||
// Íŕçâŕíčĺ ďóíęňŕ
|
||||
g.drawString(s, iconsSize + 3, FileY + iconsSize / 4, Graphics.TOP | Graphics.LEFT);
|
||||
FileY += FILE_HEIGHT;
|
||||
if(FileY > (h - (stFh*2) - FILE_HEIGHT)) break;
|
||||
}
|
||||
g.setColor(0x00);
|
||||
g.fillRect(-1, FileY+1, w+1, 2);
|
||||
g.fillRect(-1, -2, w+1, 2);
|
||||
g.translate(0, -stFh);
|
||||
}
|
||||
|
||||
/**
|
||||
* Îáđŕáîňęŕ âűáđŕííűő ďóíęňîâ
|
||||
* @param play âîńďđîčçâîäčňü čëč âűáđŕňü číńňđóěĺíň
|
||||
* @param selected ID âűáđŕííîăî ďóíęňŕ ěĺíţ
|
||||
*/
|
||||
private void selectItem(boolean play, int selected) {
|
||||
final String v = menu[selected];
|
||||
if(mode == MENU_MODE) {
|
||||
if(selected == menu.length - 1) {
|
||||
// Óäŕđíűĺ
|
||||
Main.midlet.compositionForm.selectInstrument(false, v);
|
||||
} else {
|
||||
mode = (byte) selected;
|
||||
title = v;
|
||||
updateItems();
|
||||
}
|
||||
} else {
|
||||
Main.midlet.compositionForm.selectInstrument(play, v);
|
||||
}
|
||||
}
|
||||
|
||||
protected void keyPressed (int key) {
|
||||
int ga = getGameAction(key);
|
||||
|
||||
if(ga==UP || ga==LEFT) {cursorUp();}
|
||||
else if(ga==DOWN || ga==RIGHT) {cursorDown();}
|
||||
else if (ga==FIRE) selectItem(false, cu);
|
||||
else if (key==Key.leftSoftKey) selectItem(true, cu);
|
||||
else if (key==Key.rightSoftKey) rightSoft();
|
||||
repaint();
|
||||
}
|
||||
|
||||
protected void keyRepeated (int key) {
|
||||
keyPressed(key);
|
||||
}
|
||||
|
||||
private void rightSoft() {
|
||||
if(mode == MENU_MODE) {
|
||||
Main.dsp.setCurrent(Main.midlet.compositionForm);
|
||||
} else {
|
||||
mode = MENU_MODE;
|
||||
}
|
||||
updateItems();
|
||||
}
|
||||
|
||||
private void cursorDown() {
|
||||
if (menu.length > 0) {
|
||||
final int maxHeight = h - 2 * stFh;
|
||||
if (cu == menu.length - 1) {
|
||||
CursorY = 0;
|
||||
cu = 0;
|
||||
startPrintFile = 0;
|
||||
} else if (cu > (maxHeight / FILE_HEIGHT - 3) ) {
|
||||
if (CursorY >= (maxHeight - 2 * FILE_HEIGHT)) {
|
||||
startPrintFile++;
|
||||
cu++;
|
||||
} else {
|
||||
cu++;
|
||||
CursorY += FILE_HEIGHT;
|
||||
}
|
||||
} else {
|
||||
CursorY += FILE_HEIGHT;
|
||||
cu++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void cursorUp() {
|
||||
if (menu.length > 0) {
|
||||
if (cu == 0) {
|
||||
cu = menu.length - 1;
|
||||
final int maxHeight = h - 2 * stFh;
|
||||
if (menu.length > ( (maxHeight - FILE_HEIGHT) / FILE_HEIGHT)) {
|
||||
startPrintFile = (menu.length - ( maxHeight / FILE_HEIGHT));
|
||||
CursorY = (cu - startPrintFile) * FILE_HEIGHT;
|
||||
} else {
|
||||
CursorY = cu * FILE_HEIGHT;
|
||||
}
|
||||
} else if ((CursorY == 0) && (cu > 0)) {
|
||||
startPrintFile--;
|
||||
cu--;
|
||||
} else if (CursorY > 0) {
|
||||
CursorY -= FILE_HEIGHT;
|
||||
cu--;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
protected void pointerPressed(int pix, int piy) {
|
||||
int q = UI.getSoftBarHeight();
|
||||
if(pix<2*q && piy>h-q) selectItem(true, cu);
|
||||
else if(pix>w-2*q && piy>h-q) rightSoft();
|
||||
else {
|
||||
int cu1 = cu;
|
||||
piy -= 2*P.medPlain.getHeight();
|
||||
if(piy>0 && piy<menu.length*FILE_HEIGHT) {
|
||||
cu = piy/FILE_HEIGHT;
|
||||
CursorY = cu * FILE_HEIGHT;
|
||||
}
|
||||
if(System.currentTimeMillis()-time<700 && cu1==cu) selectItem(false, cu);
|
||||
time = System.currentTimeMillis();
|
||||
}
|
||||
repaint();
|
||||
}
|
||||
|
||||
}
|
@ -98,6 +98,8 @@ public class Menu extends Canvas {
|
||||
g.setColor(P.backgrnd);
|
||||
g.fillRect(0, 0, w, h);
|
||||
|
||||
g.drawImage(P.bgKey, w, h - UI.getSoftBarHeight() - 2, Graphics.RIGHT | Graphics.BOTTOM);
|
||||
|
||||
String title = L.str[L.midedit] + ". "+Key.Platform;
|
||||
UI.drawTitle(g, title);
|
||||
UI.drawSoftBar(g, L.str[L.ok], L.str[L.exit]);
|
||||
|
@ -1,5 +1,6 @@
|
||||
package ui;
|
||||
|
||||
import java.io.IOException;
|
||||
import javax.microedition.lcdui.*;
|
||||
import main.*;
|
||||
|
||||
@ -9,8 +10,7 @@ import main.*;
|
||||
*/
|
||||
public class SettingsForm extends Form implements CommandListener {
|
||||
|
||||
private static final String[] langAppList = {"English", "Ðóññêèé", "Óêðà¿íñüêà"};
|
||||
private static final String[] langInstrList = {"English", "Ðóññêèé"};
|
||||
private static final String[] langList = {"English", "Ðóññêèé", "Óêðà¿íñüêà"};
|
||||
private static final String[] langChars = {"en", "ru", "ua"};
|
||||
|
||||
private Displayable previousScreen;
|
||||
@ -44,8 +44,9 @@ public class SettingsForm extends Form implements CommandListener {
|
||||
back = new Command(L.str[L.back], Command.BACK, 3);
|
||||
|
||||
// ßçûê
|
||||
langChoice = new ChoiceGroup(L.str[L.language], ChoiceGroup.EXCLUSIVE, langAppList, null);
|
||||
langInstr = new ChoiceGroup(L.str[L.instrlang], ChoiceGroup.EXCLUSIVE, langInstrList, null);
|
||||
Image[] icons = createImages(langChars);
|
||||
langChoice = new ChoiceGroup(L.str[L.language], ChoiceGroup.EXCLUSIVE, langList, icons);
|
||||
langInstr = new ChoiceGroup(L.str[L.instrlang], ChoiceGroup.EXCLUSIVE, langList, icons);
|
||||
|
||||
// Íàñòðîéêè ðàçìåðà íîò
|
||||
noteWidthGauge = new Gauge(L.str[L.noteWidth], true, 10, Rms.noteWidth);
|
||||
@ -69,7 +70,7 @@ public class SettingsForm extends Form implements CommandListener {
|
||||
}
|
||||
}
|
||||
// Íàñòðîéêè óïðàâëåíèÿ
|
||||
controlChoice.append(L.str[L.numkeysOptionString], null);
|
||||
controlChoice.append(L.str[L.numkeysOptionString], createImage("keypad"));
|
||||
controlChoice.setSelectedIndex(0, Rms.numKeysEdit);
|
||||
}
|
||||
|
||||
@ -90,4 +91,30 @@ public class SettingsForm extends Form implements CommandListener {
|
||||
Main.dsp.setCurrent(previousScreen);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Ïîëó÷èòü èêîíêè ôëàãîâ ñòðàí
|
||||
* @param lang ÿçûê
|
||||
* @return ìàññèâ èêîíîê
|
||||
*/
|
||||
private Image[] createImages(String[] lang) {
|
||||
Image[] icons = new Image[lang.length];
|
||||
for (int i = 0; i < icons.length; i++) {
|
||||
icons[i] = createImage(lang[i]);
|
||||
}
|
||||
return icons;
|
||||
}
|
||||
|
||||
/**
|
||||
* Ïîëó÷èòü èêîíêó ïî óêàçàííîìó ïóòè
|
||||
* @param path ïóòü
|
||||
* @return êàðòèíêà
|
||||
*/
|
||||
private Image createImage(String path) {
|
||||
try {
|
||||
return Image.createImage("/img/"+path+".png");
|
||||
} catch (IOException ex) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -89,6 +89,7 @@ public class TextView extends Canvas {
|
||||
protected void paint(Graphics g) {
|
||||
g.setColor(P.backgrnd);
|
||||
g.fillRect(0, 0, w, h);
|
||||
g.drawImage(P.bgKey, w, h - UI.getSoftBarHeight() - 2, Graphics.RIGHT | Graphics.BOTTOM);
|
||||
UI.drawTitle(g, title);
|
||||
g.setColor(P.fmtextnc);
|
||||
g.setFont(defaultFont);
|
||||
|
@ -4,6 +4,7 @@
|
||||
*/
|
||||
package ui;
|
||||
|
||||
import java.io.IOException;
|
||||
import javax.microedition.lcdui.*;
|
||||
import main.Key;
|
||||
import main.L;
|
||||
@ -40,7 +41,6 @@ public class WaitCanvas extends Canvas implements Runnable {
|
||||
/** Ňĺęóůĺĺ ńîńňî˙íčĺ (â ďđîöĺíňŕő) */
|
||||
private int curPercent;
|
||||
|
||||
|
||||
/**
|
||||
* Ęîíńňđóęňîđ
|
||||
* @param title çŕăîëîâîę îďĺđŕöčč
|
||||
@ -61,6 +61,7 @@ public class WaitCanvas extends Canvas implements Runnable {
|
||||
public void paint(Graphics g) {
|
||||
g.setColor(P.backgrnd);
|
||||
g.fillRect(0, 0, w, h);
|
||||
g.drawImage(P.bgKey, w, h - UI.getSoftBarHeight() - 2, Graphics.RIGHT | Graphics.BOTTOM);
|
||||
UI.drawTitle(g, title);
|
||||
UI.drawSoftBar(g, "", L.str[L.cancel]);
|
||||
|
||||
|