[PE mobile] Added highlight color palette
This commit is contained in:
parent
4dccf5a7dd
commit
ad11eec233
|
@ -24,7 +24,7 @@ const HighlightColorPalette = ({changeColor, curColor}) => {
|
||||||
))}
|
))}
|
||||||
</div>
|
</div>
|
||||||
</ListItem>
|
</ListItem>
|
||||||
<ListItem radio checked={(curColor && curColor === 'transparent')} onClick={() => changeColor('transparent')} title={t('Edit.textNoFill')}></ListItem>
|
<ListItem radio checked={(curColor && curColor === 'transparent')} onClick={() => changeColor('transparent')} title={t('Common.HighlightColorPalette.textNoFill')}></ListItem>
|
||||||
</List>
|
</List>
|
||||||
)
|
)
|
||||||
};
|
};
|
||||||
|
|
|
@ -161,6 +161,9 @@
|
||||||
"textCustomColors": "Custom Colors",
|
"textCustomColors": "Custom Colors",
|
||||||
"textStandartColors": "Standard Colors",
|
"textStandartColors": "Standard Colors",
|
||||||
"textThemeColors": "Theme Colors"
|
"textThemeColors": "Theme Colors"
|
||||||
|
},
|
||||||
|
"HighlightColorPalette": {
|
||||||
|
"textNoFill": "No Fill"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"ContextMenu": {
|
"ContextMenu": {
|
||||||
|
@ -304,8 +307,7 @@
|
||||||
"textTopAndBottom": "Top and Bottom",
|
"textTopAndBottom": "Top and Bottom",
|
||||||
"textTotalRow": "Total Row",
|
"textTotalRow": "Total Row",
|
||||||
"textType": "Type",
|
"textType": "Type",
|
||||||
"textWrap": "Wrap",
|
"textWrap": "Wrap"
|
||||||
"textNoFill": "No Fill"
|
|
||||||
},
|
},
|
||||||
"Error": {
|
"Error": {
|
||||||
"convertationTimeoutText": "Conversion timeout exceeded.",
|
"convertationTimeoutText": "Conversion timeout exceeded.",
|
||||||
|
|
|
@ -37,6 +37,9 @@
|
||||||
"textCustomColors": "Custom Colors",
|
"textCustomColors": "Custom Colors",
|
||||||
"textStandartColors": "Standard Colors",
|
"textStandartColors": "Standard Colors",
|
||||||
"textThemeColors": "Theme Colors"
|
"textThemeColors": "Theme Colors"
|
||||||
|
},
|
||||||
|
"HighlightColorPalette": {
|
||||||
|
"textNoFill": "No Fill"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"ContextMenu": {
|
"ContextMenu": {
|
||||||
|
|
|
@ -372,10 +372,14 @@ class MainController extends Component {
|
||||||
storeTextSettings.resetDecreaseIndent(value);
|
storeTextSettings.resetDecreaseIndent(value);
|
||||||
});
|
});
|
||||||
|
|
||||||
this.api.asc_registerCallback('asc_onTextColor', (color) => {
|
this.api.asc_registerCallback('asc_onTextColor', color => {
|
||||||
storeTextSettings.resetTextColor(color);
|
storeTextSettings.resetTextColor(color);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
this.api.asc_registerCallback('asc_onTextHighLight', color => {
|
||||||
|
storeTextSettings.resetBackgroundColor(color);
|
||||||
|
});
|
||||||
|
|
||||||
this.api.asc_registerCallback('asc_onParaSpacingLine', (vc) => {
|
this.api.asc_registerCallback('asc_onParaSpacingLine', (vc) => {
|
||||||
storeTextSettings.resetLineSpacing(vc);
|
storeTextSettings.resetLineSpacing(vc);
|
||||||
});
|
});
|
||||||
|
|
|
@ -155,6 +155,19 @@ class EditTextController extends Component {
|
||||||
api.put_TextColor(Common.Utils.ThemeColor.getRgbColor(color));
|
api.put_TextColor(Common.Utils.ThemeColor.getRgbColor(color));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
onBackgroundColor(strColor) {
|
||||||
|
const api = Common.EditorApi.get();
|
||||||
|
|
||||||
|
if (strColor == 'transparent') {
|
||||||
|
api.SetMarkerFormat(true, false);
|
||||||
|
} else {
|
||||||
|
let r = strColor[0] + strColor[1],
|
||||||
|
g = strColor[2] + strColor[3],
|
||||||
|
b = strColor[4] + strColor[5];
|
||||||
|
api.SetMarkerFormat(true, true, parseInt(r, 16), parseInt(g, 16), parseInt(b, 16));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Additional
|
// Additional
|
||||||
|
|
||||||
onAdditionalStrikethrough(type, value) {
|
onAdditionalStrikethrough(type, value) {
|
||||||
|
@ -243,6 +256,7 @@ class EditTextController extends Component {
|
||||||
changeFontSize={this.changeFontSize}
|
changeFontSize={this.changeFontSize}
|
||||||
changeFontFamily={this.changeFontFamily}
|
changeFontFamily={this.changeFontFamily}
|
||||||
onTextColor={this.onTextColor}
|
onTextColor={this.onTextColor}
|
||||||
|
onBackgroundColor={this.onBackgroundColor}
|
||||||
onAdditionalStrikethrough={this.onAdditionalStrikethrough}
|
onAdditionalStrikethrough={this.onAdditionalStrikethrough}
|
||||||
onAdditionalCaps={this.onAdditionalCaps}
|
onAdditionalCaps={this.onAdditionalCaps}
|
||||||
onAdditionalScript={this.onAdditionalScript}
|
onAdditionalScript={this.onAdditionalScript}
|
||||||
|
|
|
@ -52,7 +52,9 @@ export class storeTextSettings {
|
||||||
listItemHeight: observable,
|
listItemHeight: observable,
|
||||||
spriteCols: observable,
|
spriteCols: observable,
|
||||||
loadSprite: action,
|
loadSprite: action,
|
||||||
addFontToRecent:action
|
addFontToRecent:action,
|
||||||
|
backgroundColor: observable,
|
||||||
|
resetBackgroundColor: action
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -81,6 +83,7 @@ export class storeTextSettings {
|
||||||
canIncreaseIndent = undefined;
|
canIncreaseIndent = undefined;
|
||||||
canDecreaseIndent = undefined;
|
canDecreaseIndent = undefined;
|
||||||
textColor = undefined;
|
textColor = undefined;
|
||||||
|
backgroundColor = undefined;
|
||||||
customTextColors = [];
|
customTextColors = [];
|
||||||
lineSpacing = undefined;
|
lineSpacing = undefined;
|
||||||
|
|
||||||
|
@ -280,4 +283,14 @@ export class storeTextSettings {
|
||||||
this.lineSpacing = line;
|
this.lineSpacing = line;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
resetBackgroundColor(color) {
|
||||||
|
if (color) {
|
||||||
|
console.log(color);
|
||||||
|
if (color == -1) {
|
||||||
|
this.backgroundColor = 'transparent';
|
||||||
|
} else {
|
||||||
|
this.backgroundColor = color.get_hex();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
|
@ -14,7 +14,7 @@ import EditChartController from "../../controller/edit/EditChart";
|
||||||
import { EditLinkController } from "../../controller/edit/EditLink";
|
import { EditLinkController } from "../../controller/edit/EditLink";
|
||||||
|
|
||||||
import { Theme, Layout, Transition, Type, Effect, StyleFillColor, CustomFillColor } from './EditSlide';
|
import { Theme, Layout, Transition, Type, Effect, StyleFillColor, CustomFillColor } from './EditSlide';
|
||||||
import { PageTextFonts, PageTextFontColor, PageTextCustomFontColor, PageTextAddFormatting, PageTextBulletsAndNumbers, PageTextLineSpacing } from './EditText';
|
import { PageTextFonts, PageTextFontColor, PageTextBackgroundColor, PageTextCustomFontColor, PageTextAddFormatting, PageTextBulletsAndNumbers, PageTextLineSpacing } from './EditText';
|
||||||
import { PageShapeStyle, PageShapeStyleNoFill, PageReplaceContainer, PageReorderContainer, PageAlignContainer, PageShapeBorderColor, PageShapeCustomBorderColor, PageShapeCustomFillColor } from './EditShape';
|
import { PageShapeStyle, PageShapeStyleNoFill, PageReplaceContainer, PageReorderContainer, PageAlignContainer, PageShapeBorderColor, PageShapeCustomBorderColor, PageShapeCustomFillColor } from './EditShape';
|
||||||
import { PageImageReplace, PageImageReorder, PageImageAlign, PageLinkSettings } from './EditImage';
|
import { PageImageReplace, PageImageReorder, PageImageAlign, PageLinkSettings } from './EditImage';
|
||||||
import { PageTableStyle, PageTableStyleOptions, PageTableCustomFillColor, PageTableBorderColor, PageTableCustomBorderColor, PageTableReorder, PageTableAlign } from './EditTable';
|
import { PageTableStyle, PageTableStyleOptions, PageTableCustomFillColor, PageTableBorderColor, PageTableCustomBorderColor, PageTableReorder, PageTableAlign } from './EditTable';
|
||||||
|
@ -64,6 +64,10 @@ const routes = [
|
||||||
path: '/edit-text-font-color/',
|
path: '/edit-text-font-color/',
|
||||||
component: PageTextFontColor
|
component: PageTextFontColor
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
path: '/edit-text-background-color/',
|
||||||
|
component: PageTextBackgroundColor
|
||||||
|
},
|
||||||
{
|
{
|
||||||
path: '/edit-text-custom-font-color/',
|
path: '/edit-text-custom-font-color/',
|
||||||
component: PageTextCustomFontColor
|
component: PageTextCustomFontColor
|
||||||
|
|
|
@ -5,6 +5,7 @@ import { useTranslation } from 'react-i18next';
|
||||||
import {Device} from '../../../../../common/mobile/utils/device';
|
import {Device} from '../../../../../common/mobile/utils/device';
|
||||||
import { ThemeColorPalette, CustomColorPicker } from '../../../../../common/mobile/lib/component/ThemeColorPalette.jsx';
|
import { ThemeColorPalette, CustomColorPicker } from '../../../../../common/mobile/lib/component/ThemeColorPalette.jsx';
|
||||||
import { LocalStorage } from '../../../../../common/mobile/utils/LocalStorage';
|
import { LocalStorage } from '../../../../../common/mobile/utils/LocalStorage';
|
||||||
|
import HighlightColorPalette from '../../../../../common/mobile/lib/component/HighlightColorPalette.jsx';
|
||||||
|
|
||||||
const EditText = props => {
|
const EditText = props => {
|
||||||
const isAndroid = Device.android;
|
const isAndroid = Device.android;
|
||||||
|
@ -16,6 +17,7 @@ const EditText = props => {
|
||||||
const fontName = storeTextSettings.fontName || _t.textFonts;
|
const fontName = storeTextSettings.fontName || _t.textFonts;
|
||||||
const fontSize = storeTextSettings.fontSize;
|
const fontSize = storeTextSettings.fontSize;
|
||||||
const fontColor = storeTextSettings.textColor;
|
const fontColor = storeTextSettings.textColor;
|
||||||
|
const backgroundColor = storeTextSettings.backgroundColor;
|
||||||
const displaySize = typeof fontSize === 'undefined' || fontSize == '' ? _t.textAuto : fontSize + ' ' + _t.textPt;
|
const displaySize = typeof fontSize === 'undefined' || fontSize == '' ? _t.textAuto : fontSize + ' ' + _t.textPt;
|
||||||
const isBold = storeTextSettings.isBold;
|
const isBold = storeTextSettings.isBold;
|
||||||
const isItalic = storeTextSettings.isItalic;
|
const isItalic = storeTextSettings.isItalic;
|
||||||
|
@ -53,6 +55,10 @@ const EditText = props => {
|
||||||
<span className="color-preview" style={{ background: `#${(typeof fontColor === "object" ? fontColor.color : fontColor)}`}}></span> :
|
<span className="color-preview" style={{ background: `#${(typeof fontColor === "object" ? fontColor.color : fontColor)}`}}></span> :
|
||||||
<span className="color-preview auto"></span>;
|
<span className="color-preview auto"></span>;
|
||||||
|
|
||||||
|
const backgroundColorPreview = backgroundColor !== 'transparent' ?
|
||||||
|
<span className="color-preview" style={{ background: `#${(typeof backgroundColor === "object" ? backgroundColor.color : backgroundColor)}`}}></span> :
|
||||||
|
<span className="color-preview"></span>;
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Fragment>
|
<Fragment>
|
||||||
<List>
|
<List>
|
||||||
|
@ -76,6 +82,13 @@ const EditText = props => {
|
||||||
fontColorPreview
|
fontColorPreview
|
||||||
}
|
}
|
||||||
</ListItem>
|
</ListItem>
|
||||||
|
<ListItem title={t("View.Edit.textHighlightColor")} link="/edit-text-background-color/" routeProps={{
|
||||||
|
onBackgroundColor: props.onBackgroundColor
|
||||||
|
}}>
|
||||||
|
{!isAndroid ?
|
||||||
|
<Icon slot="media" icon="icon-text-selection">{backgroundColorPreview}</Icon> : backgroundColorPreview
|
||||||
|
}
|
||||||
|
</ListItem>
|
||||||
<ListItem title={_t.textAdditionalFormatting} link="/edit-text-add-formatting/" routeProps={{
|
<ListItem title={_t.textAdditionalFormatting} link="/edit-text-add-formatting/" routeProps={{
|
||||||
onAdditionalStrikethrough: props.onAdditionalStrikethrough,
|
onAdditionalStrikethrough: props.onAdditionalStrikethrough,
|
||||||
onAdditionalCaps: props.onAdditionalCaps,
|
onAdditionalCaps: props.onAdditionalCaps,
|
||||||
|
@ -369,6 +382,37 @@ const PageCustomFontColor = props => {
|
||||||
)
|
)
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const PageBackgroundColor = props => {
|
||||||
|
const { t } = useTranslation();
|
||||||
|
const _t = t('View.Edit', {returnObjects: true});
|
||||||
|
const backgroundColor = props.storeTextSettings.backgroundColor;
|
||||||
|
|
||||||
|
const changeColor = (color, effectId) => {
|
||||||
|
if (color !== 'empty') {
|
||||||
|
if (effectId !== undefined ) {
|
||||||
|
props.onBackgroundColor({color: color, effectId: effectId});
|
||||||
|
} else {
|
||||||
|
props.onBackgroundColor(color);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
return (
|
||||||
|
<Page>
|
||||||
|
<Navbar title={_t.textHighlightColor} backLink={_t.textBack}>
|
||||||
|
{Device.phone &&
|
||||||
|
<NavRight>
|
||||||
|
<Link sheetClose='#edit-sheet'>
|
||||||
|
<Icon icon='icon-expand-down'/>
|
||||||
|
</Link>
|
||||||
|
</NavRight>
|
||||||
|
}
|
||||||
|
</Navbar>
|
||||||
|
<HighlightColorPalette changeColor={changeColor} curColor={backgroundColor} />
|
||||||
|
</Page>
|
||||||
|
)
|
||||||
|
};
|
||||||
|
|
||||||
const PageAdditionalFormatting = props => {
|
const PageAdditionalFormatting = props => {
|
||||||
const isAndroid = Device.android;
|
const isAndroid = Device.android;
|
||||||
const { t } = useTranslation();
|
const { t } = useTranslation();
|
||||||
|
@ -609,6 +653,7 @@ const PageLineSpacing = props => {
|
||||||
const EditTextContainer = inject("storeTextSettings", "storeFocusObjects")(observer(EditText));
|
const EditTextContainer = inject("storeTextSettings", "storeFocusObjects")(observer(EditText));
|
||||||
const PageTextFonts = inject("storeTextSettings", "storeFocusObjects")(observer(PageFonts));
|
const PageTextFonts = inject("storeTextSettings", "storeFocusObjects")(observer(PageFonts));
|
||||||
const PageTextFontColor = inject("storeTextSettings", "storePalette", "storeFocusObjects")(observer(PageFontColor));
|
const PageTextFontColor = inject("storeTextSettings", "storePalette", "storeFocusObjects")(observer(PageFontColor));
|
||||||
|
const PageTextBackgroundColor = inject("storeTextSettings", "storePalette")(observer(PageBackgroundColor));
|
||||||
const PageTextCustomFontColor = inject("storeTextSettings", "storePalette")(observer(PageCustomFontColor));
|
const PageTextCustomFontColor = inject("storeTextSettings", "storePalette")(observer(PageCustomFontColor));
|
||||||
const PageTextAddFormatting = inject("storeTextSettings", "storeFocusObjects")(observer(PageAdditionalFormatting));
|
const PageTextAddFormatting = inject("storeTextSettings", "storeFocusObjects")(observer(PageAdditionalFormatting));
|
||||||
const PageTextBulletsAndNumbers = inject("storeTextSettings", "storeFocusObjects")(observer(PageBulletsAndNumbers));
|
const PageTextBulletsAndNumbers = inject("storeTextSettings", "storeFocusObjects")(observer(PageBulletsAndNumbers));
|
||||||
|
@ -618,6 +663,7 @@ export {
|
||||||
EditTextContainer as EditText,
|
EditTextContainer as EditText,
|
||||||
PageTextFonts,
|
PageTextFonts,
|
||||||
PageTextFontColor,
|
PageTextFontColor,
|
||||||
|
PageTextBackgroundColor,
|
||||||
PageTextCustomFontColor,
|
PageTextCustomFontColor,
|
||||||
PageTextAddFormatting,
|
PageTextAddFormatting,
|
||||||
PageTextBulletsAndNumbers,
|
PageTextBulletsAndNumbers,
|
||||||
|
|
Loading…
Reference in a new issue