Есть
#ifndef _TListBoxModel_h_
#define _TListBoxModel_h_
//--------------------------------------------------------
#include "../JuceLibraryCode/JuceHeader.h"
//--------------------------------------------------------
class TListBoxModel : public TableListBoxModel
{
public:
TListBoxModel();
~TListBoxModel();
// Задаём число элементов списка
int getNumRows();
// Отрисовка элемента списка
void paintListBoxItem(int, Graphics&, int, int, bool);
// Обработка щелчка и двойного щелчка мышью по элементу
void listBoxItemClicked(int, const MouseEvent&);
void listBoxItemDoubleClicked(int, const MouseEvent&);
// Обработка щелчка мышью по свободному пространству списка
int backgroundClicked();
// Собственные функции добавления и удаления элемента списка
void AddItem(String);
void DeleteItem(int);
private:
// Массив для хранения строк списка
Array<String> sItems;
// Предотвращает создание копии конструктора и оператора =
TListBoxModel(const TListBoxModel&);
const TListBoxModel& operator= (const TListBoxModel&);
};
//---------------------------------------------------------
#endif
Есть реализация класса
#include "TListBoxModel.h"
//--------------------------------------------------------
#define tr(s) String::fromUTF8(s)
//-------------------------------------------------------
TListBoxModel::TListBoxModel()
{
}
//-------------------------------------------------------
TListBoxModel::~TListBoxModel()
{
// Перед завершенням роботи видаляємо збережені рядка списку
sItems.clear();
}
//-------------------------------------------------------
int TListBoxModel::getNumRows()
{
// Число елементів списку - число збережених рядків
return sItems.size();
}
//-----------------------------------------------------
void TListBoxModel::paintListBoxItem(int iRowNumber, Graphics& Painter, int iWidth, int iHeight, bool bIsRowSelected)
{
// Якщо рядок обрана, зафарбовуємо її блакитним кольором
if (bIsRowSelected)
{
Painter.fillAll(Colours::lightblue);
}
// Колір напису - чорний
Painter.setColour(Colours::black);
// Розмір шрифту - 75 % від висоти рядка
Painter.setFont(iHeight * 0.7f);
// Малюємо текст рядки із заданими параметрами, виходячи з її номера
Painter.drawText(sItems[iRowNumber],
5, 0, iWidth, iHeight,
Justification::centredLeft, true);
}
// ------------------------------------------------ ------
void TListBoxModel::listBoxItemClicked(int iRowNumber,
const MouseEvent & Event)
{
}
// ------------------------------------------------ ------
void TListBoxModel::listBoxItemDoubleClicked(int iRowNumber,
const MouseEvent & Event)
{
// Якщо користувач двічі клацнув по елементу списку
// Виводимо текст відповідного рядка
String sMessage = tr("Вибрано елемент \" ");
sMessage += sItems[iRowNumber];
sMessage += "\" ";
AlertWindow::showMessageBox(AlertWindow::InfoIcon,
tr("Інформація"), sMessage,
tr("Так"), 0);
}
// ------------------------------------------------ ------
int TListBoxModel::backgroundClicked()
{
return 0;
}
// ------------------------------------------------ ---- -
void TListBoxModel::AddItem(String sText)
{
// Додаємо новий елемент в масив рядків
sItems.add(sText);
}
// ------------------------------------------------ ------ -
void TListBoxModel::DeleteItem(int iItem)
{
// Видаляємо елемент з масиву рядків
sItems.remove(iItem);
}
// ------------------------------------------------ ------ -
Пытаемся создать таблицу при постройке окна.
tableModel = new TListBoxModel();
addAndMakeVisible(table = new TableListBox());
table->getHeader().addColumn("City", 1, 100);
table->getHeader().addColumn("Population", 1, 100);
table->setModel(tableModel);
tablemodel определено как
TListBoxModel * tableModel;
argument of type "TListBoxModel *" is incompatible with parameter of type "juce::TableListBoxModel *" first_App f:\juce\first\Source\Form1t.cpp 58
Вторую ночь не могу заснуть и пытаюсь решить проблему
с обычным ListBox проблем нет таких.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Здравствуйте Возникла проблема с ADODataDriverEh Имеется стандартная цепочка: ADOConnectionProviderEh - ADODataDriverEh - MemTableEh - DataSource - DBGridEh (с DBNavigator)
Мое приложение показывает карту и позволяет прокладывать путьПосле нажатия на карту, мы видим иконку первого Waypoint
Здравствуйте, пишу приложение на С++(Qt), которое работает с БД и в процессе всей моей работы у меня возник вопрос в каких ситуациях, когда и где...