#ifndef INPUT_INPUT_VIEW_H
#define INPUT_INPUT_VIEW_H
-#include "Input/InputBox.h"
#include "Input/AttachPanel.h"
+#include "Input/InputBox.h"
+#include "Input/RecordField.h"
#include "Common/Model/Memo.h"
class TitleField;
class CheckItem;
class EntryItem;
- class RecordField;
/**
* @brief Input view.
InputBox *getInputBox() const;
TitleField *getTitleField() const;
+ RecordField *getRecordField() const;
Common::Model::Memo &getMemo();
Common::Model::MemoProvider *getProvider() const;
Evas_Object *createTitle(Evas_Object *parent);
Evas_Object *createFavIcon(Evas_Object *parent);
Evas_Object *createContent(Evas_Object *parent);
+ Evas_Object *createRecordField(Evas_Object *parent, RecordField::Mode mode);
void onDonePressed(Evas_Object *button, void *eventInfo);
void onCancelPressed(Evas_Object *button, void *eventInfo);
void onColorChange();
void onAddRecord();
void onInsertImage(EntryItem *item);
- void onRecordFieldDelete();
void onImagesReceived(std::vector<std::string> results, EntryItem *item);
void onAttachPanelHidden(EntryItem *item);
void onTitleChanged(Evas_Object *entry, void *eventInfo);
void onFavChanged(Evas_Object *check, void *eventInfo);
void onContentChanged(bool isEmpty);
+ void onRecordFieldDelete();
void onMemoChanged();
void onMaxImagesReached();
bool isSupportedResolution(const std::string &path) const;
/**
* @brief Set rotation state.
- * @param[in] degree Rotation angle
+ * @param[in] degree Rotation angle.
*/
void setRotation(int degree);
+ /**
+ * @brief Set editable state.
+ * @param[in] isEditable Editable state.
+ */
+ void setEditable(bool isEditable);
+
/**
* @brief Pause recorder or player.
*/
#define SIGNAL_PROGRESS_BAR_SHOW "progress_bar,state,show"
#define SIGNAL_PROGRESS_BAR_HIDE "progress_bar,state,hide"
+#define SIGNAL_CLOSE_BTN_SHOW "close_btn,state,show"
+#define SIGNAL_CLOSE_BTN_HIDE "close_btn,state,hide"
+
#endif /* RECORD_FIELD_LAYOUT_H */
textblock { PART_DATETIME; scale;
desc { "default";
align: 1.0 1.0;
- rel1 { relative: 0.0 0.0; to_x: "spacer.content.right"; to_y: PART_RECORD; }
+ rel1 { relative: 0.0 0.0; to_x: "spacer.content.right"; to_y: "spacer.datetime.bottom"; }
rel2 { relative: 0.0 0.0; to_x: "spacer.content.right"; to_y: "spacer.datetime.bottom"; }
text {
style: "datetime_text";
image.normal: RECORD_BTN_CLOSE;
color: 77 77 77 255;
}
+ desc { "hiden";
+ inherit: "default";
+ visible: 0;
+ }
}
}
programs {
action: STATE_SET "default" 0.0;
target: PART_PROGRESS_BAR;
}
+ program {
+ signal: SIGNAL_CLOSE_BTN_SHOW;
+ source: "*";
+ action: STATE_SET "default" 0.0;
+ target: PART_CLOSE_BTN;
+ }
+ program {
+ signal: SIGNAL_CLOSE_BTN_HIDE;
+ source: "*";
+ action: STATE_SET "hiden" 0.0;
+ target: PART_CLOSE_BTN;
+ }
}
}
getInputBox()->setCheckChangedCallback(std::bind(&DetailsView::onCheckChanged, this));
getInputBox()->setGuideTextEnabled(false);
getTitleField()->setFocusCallback(std::bind(&DetailsView::onContentFocused, this));
+ if (getRecordField()) {
+ getRecordField()->setEditable(false);
+ }
subscribeToSystemSettings();
elm_object_signal_emit(getEvasObject(), SIGNAL_DATETIME_SHOW, "*");
elm_layout_text_set(getEvasObject(), PART_DATETIME,
getInputBox()->unsetCheckChangedCallback();
getInputBox()->setGuideTextEnabled(true);
getTitleField()->unsetFocusCallback();
+ if (getRecordField()) {
+ getRecordField()->setEditable(true);
+ }
InputView::onPageAttached(getPage());
unsubscribeFromSystemSettings();
elm_object_signal_emit(getEvasObject(), SIGNAL_DATETIME_HIDE, "*");
#include "Input/EntryItem.h"
#include "Input/CheckItem.h"
#include "Input/ColorSelector.h"
-#include "Input/RecordField.h"
#include "Input/TitleField.h"
#include "Common/Model/MemoProvider.h"
elm_layout_content_set(layout, PART_TITLE, createTitle(layout));
elm_layout_content_set(layout, PART_FAV_BTN, createFavIcon(layout));
elm_layout_content_set(layout, PART_CONTENT, createContent(layout));
+ if (m_Memo.getSoundRecord()) {
+ elm_layout_content_set(layout, PART_RECORD, createRecordField(layout, RecordField::ModePlayer));
+ }
return layout;
}
return m_TitleField;
}
+RecordField *InputView::getRecordField() const
+{
+ return m_RecordField;
+}
+
Common::Model::Memo &InputView::getMemo()
{
return m_Memo;
return scroller;
}
+Evas_Object *InputView::createRecordField(Evas_Object *parent, RecordField::Mode mode)
+{
+ m_RecordField = new RecordField(m_Memo.getSoundRecord()->getPath(), mode);
+ m_RecordField->create(parent);
+ m_RecordField->setRotation(getRotation());
+ m_RecordField->setDeleteCallback(std::bind(&InputView::onRecordFieldDelete, this));
+
+ return m_RecordField->getEvasObject();
+}
+
void InputView::onDonePressed(Evas_Object *button, void *eventInfo)
{
m_Memo.setContent(m_InputBox->getContent());
void InputView::onAddRecord()
{
m_Memo.addSoundRecord();
- m_RecordField = new RecordField(m_Memo.getSoundRecord()->getPath());
- m_RecordField->create(getEvasObject());
- m_RecordField->setRotation(getRotation());
- m_RecordField->setDeleteCallback(std::bind(&InputView::onRecordFieldDelete, this));
- elm_layout_content_set(getEvasObject(), PART_RECORD, m_RecordField->getEvasObject());
+ elm_layout_content_set(getEvasObject(), PART_RECORD, createRecordField(getEvasObject(), RecordField::ModeRecorder));
}
void InputView::onInsertImage(EntryItem *item)
m_AttachPanel.show();
}
-void InputView::onRecordFieldDelete()
-{
- m_Memo.removeSoundRecord();
-}
-
void InputView::onImagesReceived(std::vector<std::string> results, EntryItem *item)
{
for (auto &&path : results) {
}
}
+void InputView::onRecordFieldDelete()
+{
+ m_Memo.removeSoundRecord();
+}
+
void InputView::onMemoChanged()
{
elm_object_disabled_set(m_DoneButton, m_Memo.isEmpty());
{
if (degree == 0 || degree == 180) {
elm_object_signal_emit(getEvasObject(), SIGNAL_RECORD_PORTRAIT, "*");
- } else {
+ } else if (degree == 90 || degree == 270) {
elm_object_signal_emit(getEvasObject(), SIGNAL_RECORD_LANDSCAPE, "*");
}
}
+void RecordField::setEditable(bool isEditable)
+{
+ elm_object_signal_emit(getEvasObject(), (isEditable) ? SIGNAL_CLOSE_BTN_SHOW : SIGNAL_CLOSE_BTN_HIDE, "*");
+}
+
void RecordField::pause()
{
switch (m_Mode) {